Android中的Getters和Setters

时间:2015-02-23 21:43:10

标签: java android

请帮助我......我不知道我做错了什么!!

我有3节课。

1 - 活动= TelaCadastroRestaurant.java

2 - Entity = Restaurant.java

3 - Method's Class = Metodos.java

问题:当我在方法 callMandarNuvem() ANY 中调用 getNomeRestaurante()时,其他方法 BUT pegarvalores()它不工作 ...它显示为null。

错误的打印:http://i.imgur.com/sOcBkUM.png

********************例************************** *

如果我在方法pegarValores()和Toast中创建一个Restaurant对象,请调用:getNomeRestaurante()......这一切都是正常的。

但是,如果我在方法pegarValores()和Toast中创建一个Restaurant对象,请调用:getNomeRestaurante()... IT显示为空。

*********************方法的含义*******************

方法 - > inicializaComponentes():它引用Activity的组件。

方法 - > acaoBotoes():它处理按钮上的点击次数

方法 - > pegarValores():这意味着,抓住价值观。

方法 - > mandarNuvem():意思是,发送到clound(保存)

方法 - > caixaCerteza():这意味着,你确定要这样做吗?

方法 - > taskInProgress():表示loading..wait


公共类TelaCadastroRestaurante扩展了活动{

private Button proximoButton;
private EditText nomeRestauranteEditText, emailRestauranteEditText, telefoneRestauranteEditText;

private String nomeRestauranteValores, emailRestauranteValores;
private int telefoneRestauranteValores;

private String voceTemCerteza = "Você tem certeza que deseja cadastrar o restaurante ";


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tela_cadastro_restaurante);
    incializarComponentes();
    acaoBotoes();
}

public void incializarComponentes() {
    nomeRestauranteEditText = (EditText) findViewById(R.id.editTextNomeRestauranteTelaCadastroRestaurante);
    emailRestauranteEditText = (EditText) findViewById(R.id.editTextEmailRestauranteTelaCadastroRestaurante);
    telefoneRestauranteEditText = (EditText) findViewById(R.id.editTextTelefoneRestauranteTelaCadastroRestaurante);
    proximoButton = (Button) findViewById(R.id.buttonProximoTelaCadastroRestaurante);
}

public void acaoBotoes() {
    proximoButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            pegarValores();
            callMandarNuvem();
        }
    });
}

public void pegarValores(){
    Restaurante rest = new Restaurante();

    nomeRestauranteValores = nomeRestauranteEditText.getText().toString();
    emailRestauranteValores = emailRestauranteEditText.getText().toString();
    telefoneRestauranteValores = Integer.parseInt(telefoneRestauranteEditText.getText().toString());

    rest.setNomeRest(nomeRestauranteValores);
    rest.setEmailRest(emailRestauranteValores);
    rest.setTelefoneRest(telefoneRestauranteValores);

}

public void callMandarNuvem(){
    Runnable r = new Runnable() {
        public void run() {
            Metodos.mandarNuvem(TelaCadastroRestaurante.this);
        }
    };

    Restaurante rest = new Restaurante();
    Metodos.caixaCerteza(TelaCadastroRestaurante.this, voceTemCerteza + rest.getNomeRest() + "?",r);

}

}


public class Restaurante {

private String idRest;
private String nomeRest;
private String emailRest;
private int telefoneRest;

public Restaurante() {
}

public Restaurante(String nomeRest, String emailRest, int telefoneRest) {
    this.nomeRest = nomeRest;
    this.emailRest = emailRest;
    this.telefoneRest = telefoneRest;
}

public String getIdRest() {
    return idRest;
}

public void setIdRest(String idRest) {
    this.idRest = idRest;
}

public String getNomeRest() {
    return nomeRest;
}

public void setNomeRest(String nomeRest) {
    this.nomeRest = nomeRest;
}

public String getEmailRest() {
    return emailRest;
}

public void setEmailRest(String emailRest) {
    this.emailRest = emailRest;
}

public int getTelefoneRest() {
    return telefoneRest;
}

public void setTelefoneRest(int telefoneRest) {
    this.telefoneRest = telefoneRest;
}

@Override
public String toString() {
    return nomeRest;
}

}


公共课堂Metodos {

private static ProgressDialog dialog;

// Metodo que mostra o Aguarde a verificação
public static void taskInProgres(boolean mostrar, Context context) {

    if (dialog == null) {
        dialog = new ProgressDialog(context);
        dialog = ProgressDialog.show(context, "","Espere um momento...", true);
    }
    if (mostrar) {
        dialog.show();
    } else {
        dialog.dismiss();
    }
}

// Metodo que mostra a caixa de certeza
public static void caixaCerteza(final Context context, final String texto, final Runnable func) {
    AlertDialog.Builder builderaction = new AlertDialog.Builder(context);
    builderaction.setTitle("Atenção!");
    builderaction.setMessage(texto);

    builderaction.setPositiveButton("Sim",new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    func.run();
                }
            });
    builderaction.setNegativeButton("Não",new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });
    AlertDialog alert = builderaction.create();
    alert.setIcon(R.drawable.ic_stop);
    alert.show();
}

// Metodo que manda pra nuvem
public static void mandarNuvem(final Context context){

    Metodos.taskInProgres(true, context);

        Restaurante rest = new Restaurante();

        ParseObject restauranteParse = new ParseObject("Restaurante");
        restauranteParse.put("nomeRestaurante", rest.getNomeRest());
        restauranteParse.put("emailRestaurante", rest.getEmailRest());
        restauranteParse.put("telefoneRestaurante", rest.getTelefoneRest());
        restauranteParse.saveInBackground(new SaveCallback() {
            @Override
            public void done(ParseException e) {
                if (e == null) {
                    Toast.makeText(context,"Salvo com sucesso!", Toast.LENGTH_SHORT).show();
                    Metodos.taskInProgres(false, context);
                } else {
                    Toast.makeText(context, e.getMessage(),Toast.LENGTH_SHORT).show();
                }
            }
        });
}

}

2 个答案:

答案 0 :(得分:0)

Restaurante rest = new Restaurante();
Metodos.caixaCerteza(TelaCadastroRestaurante.this, voceTemCerteza + rest.getNomeRest() + "?",r);

您正在调用实体类的默认构造函数来构建"空"餐厅。所以String nomeRest保持其值在该点为null。

所以请调用另一个构造函数来传递您的值,或者像在其他方法中一样使用setter!

答案 1 :(得分:0)

您正在创建Restaurant的新实例,而不是设置任何值。我认为这就是你要找的东西:

 public class TelaCadastroRestaurante extends Activity {

   private Button proximoButton;
   private EditText nomeRestauranteEditText, emailRestauranteEditText, telefoneRestauranteEditText;

   private String nomeRestauranteValores, emailRestauranteValores;
   private int telefoneRestauranteValores;

   private String voceTemCerteza = "Você tem certeza que deseja cadastrar o restaurante ";

   private final Restaurante rest;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_tela_cadastro_restaurante);
     incializarComponentes();
     acaoBotoes();
        }

    public void incializarComponentes() {
     nomeRestauranteEditText = (EditText)                   findViewById(R.id.editTextNomeRestauranteTelaCadastroRestaurante);
     emailRestauranteEditText = (EditText) findViewById(R.id.editTextEmailRestauranteTelaCadastroRestaurante);
      telefoneRestauranteEditText = (EditText) findViewById(R.id.editTextTelefoneRestauranteTelaCadastroRestaurante);
      proximoButton = (Button) findViewById(R.id.buttonProximoTelaCadastroRestaurante);
   }

  public void acaoBotoes() {
   proximoButton.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        pegarValores();
        callMandarNuvem();
    }
});
}

  public void pegarValores(){
     rest = new Restaurante();

   nomeRestauranteValores =       nomeRestauranteEditText.getText().toString();
   emailRestauranteValores = emailRestauranteEditText.getText().toString();
   telefoneRestauranteValores = Integer.parseInt(telefoneRestauranteEditText.getText().toString());

   rest.setNomeRest(nomeRestauranteValores);
   rest.setEmailRest(emailRestauranteValores);
   rest.setTelefoneRest(telefoneRestauranteValores);

  }

  public void callMandarNuvem(){
     Runnable r = new Runnable() {
    public void run() {
        Metodos.mandarNuvem(TelaCadastroRestaurante.this);
    }
};

   Metodos.caixaCerteza(TelaCadastroRestaurante.this, voceTemCerteza + rest.getNomeRest() + "?",r);

}

Metodos课程中,将mandarNuvem更改为:

// Metodo que manda pra nuvem
public static void mandarNuvem(final Context context,Restaurante rest){

Metodos.taskInProgres(true, context);

    ParseObject restauranteParse = new ParseObject("Restaurante");
    restauranteParse.put("nomeRestaurante", rest.getNomeRest());
    restauranteParse.put("emailRestaurante", rest.getEmailRest());
    restauranteParse.put("telefoneRestaurante", rest.getTelefoneRest());
    restauranteParse.saveInBackground(new SaveCallback() {
        @Override
        public void done(ParseException e) {
            if (e == null) {
                Toast.makeText(context,"Salvo com sucesso!", Toast.LENGTH_SHORT).show();
                Metodos.taskInProgres(false, context);
            } else {
                Toast.makeText(context, e.getMessage(),Toast.LENGTH_SHORT).show();
            }
        }
    });
 }

然后将您对方法的调用更改为:

 public void callMandarNuvem(){
Runnable r = new Runnable() {
    public void run() {
        Metodos.mandarNuvem(TelaCadastroRestaurante.this,rest);
    }
};