I have an app that contain 4 buttons , 2 in MainActivity and 2 in custom Dialog. when I call setOnClickListener() for 2 buttons in custom Dialog , it cause Unfortunately (app_name) has stopped in virtual machine
public class MainActivity extends Activity implements OnClickListener{
Button btnAdd;
Button btnSet;
Button btnDlt;
Button btnCancel;
Dialog getDialog = new Dialog(this);
ListView taskList;
EditText getTask;
ArrayList<String> listItem = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setUpVeiw();
setUpListView();
setUpOnClick();
}
private void setUpVeiw() {
btnAdd = (Button) findViewById(R.id.btnAddTask);
btnDlt = (Button) findViewById(R.id.btnDlt);
btnSet = (Button) findViewById(R.id.btnSet);
btnCancel = (Button) findViewById(R.id.btnCancel);
getTask = (EditText) findViewById(R.id.editText1);
}
private void setUpListView() {
taskList = (ListView) findViewById(R.id.listView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, listItem);
taskList.setAdapter(adapter);
listItem.add("Ali");
}
private void setUpOnClick() {
btnAdd.setOnClickListener(this);
btnDlt.setOnClickListener(this);
btnSet.setOnClickListener(this);
btnCancel.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnAddTask:
getDialog.setContentView(R.layout.get_task_dialog);
getDialog.setTitle(R.string.add_task);
getDialog.show();
break;
case R.id.btnDlt:
break;
case R.id.btnSet:
break;
case R.id.btnCancel:
break;
default:
break;
}
}
}
it cause Unfortunately (app_name) has stopped in virtual machine
Because you are not initializing that two buttons with dialog view. your are trying to initialize the that two buttons from R.layout.activity_main
where they don't exists.
Try following code for both dialog buttons
In following code [for example] i am assuming that your btnCancel
is inside dialog
(R.layout.get_task_dialog
)
btnCancel = (Button)getLayoutInflater().inflate(R.layout.get_task_dialog, null).findViewById(R.id.btnCancel);