I have an activity that opens a dialog with 4 EditTexts, I need the user to enter all the edit texts to continue, how can I enforce the user to enter all fields?
edit even if the user presses the back button This is my code :
private void showEnterNamesDialog(final boolean edit){
    final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
    LayoutInflater inflater = this.getLayoutInflater();
    final View dialogView = inflater.inflate(R.layout.enter_names_dialog, null);
    dialogBuilder.setView(dialogView);
    final EditText[] plyrs_et = new EditText[4];
    plyrs_et[0] = (EditText)dialogView.findViewById(R.id.plyr1_et_dialog);
    plyrs_et[1] = (EditText)dialogView.findViewById(R.id.plyr2_et_dialog);
    plyrs_et[2] = (EditText)dialogView.findViewById(R.id.plyr3_et_dialog);
    plyrs_et[3] = (EditText)dialogView.findViewById(R.id.plyr4_et_dialog);
    if(edit){
        String[] names = gameList.getNames();
        for (int i = 0; i < 4; i++){
            plyrs_et[i].setText(names[i]);
        }
        dialogBuilder.setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
            }
        });
    }
    dialogBuilder.setTitle(getResources().getString(R.string.enter_players_names));
    dialogBuilder.setPositiveButton(getResources().getString(R.string.submit_btn), new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            String[] names = new String[4];
            for(int j = 0; j < 4 ; j++){
                names[j] = plyrs_et[j].getText().toString();
            }
            if(names[0].isEmpty() || names[1].isEmpty() || names[2].isEmpty() || names[3].isEmpty()) {
                Toast error = Toast.makeText(getApplicationContext(), getResources().getString(R.string.toast_alert), Toast.LENGTH_SHORT);
                error.show();
            }else {
                if(edit){
                    //set the names in textViews
                    hp1.setText(names[0]);
                    hp2.setText(names[1]);
                    hp3.setText(names[2]);
                    hp4.setText(names[3]);
                    gameList.setNames(names);
                }else {
                    gameList.setNames(names);
                    setHeaderFooter(names);
                    listView.setAdapter(mAdapter);
                }
            }
        }
    });
    AlertDialog b = dialogBuilder.create();
    b.show();
}
This code only gives a Toast message but still closes the dialog. Any ideas?
 
     
    