I have a custom dialog inside
public class NewPartnerDialog extends Dialog implements OnClickListener
And I call it from other class (activity)
private void showCustomDialog() {
NewPartnerDialog customDialog = new NewPartnerDialog(this);
customDialog.show();
}
And it works (it does show), but I have a little problem. In it I have 3 EditText fields. How can I retreieve those typed values and pass them into some other class construtor. Here is the code.
public class NewPartnerDialog extends Dialog implements OnClickListener {
public NewPartnerDialog(Context context) {
super(context);
mainContext = context;
setContentView(R.layout.dialog_new_partner);
setTitle("Dialog");
finish = (Button) findViewById(R.id.finish);
cancel = (Button) findViewById(R.id.finish);
finish.setOnClickListener(this);
cancel.setOnClickListener(this);
name = (EditText) findViewById(R.id.name);
address = (EditText) findViewById(R.id.address);
city = (EditText) findViewById(R.id.city);
}
@Override
public void onClick(View v) {
if (v == finish) {
Partner.addNewPartner(mainContext, name.getText().toString(), address.getText().toString(), city.getText().toString());
} else if (v == cancel) {
dismiss();
}
}
private static EditText name;
private static EditText address;
private static EditText city;
private static Context mainContext;
private Button finish;
private Button cancel;
}
The error is obivusly here
if (v == finish) {
Partner.addNewPartner(mainContext, name.getText().toString(), address.getText().toString(), city.getText().toString());
}
because it says NullPointerException but how to fix it?
Try making name, address, and city final:
Not certain that will do the trick, but you may try.
EDIT: You may need to make
finishandcancelfinal as well.