Reputation: 2436
i want to open my alert dialog in positive button click which i have 3 validaiotn condition i check on it below is my code
LayoutInflater li = LayoutInflater.from(getActivity());
View promptsView = li.inflate(R.layout.dialog_reset, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new ContextThemeWrapper(getActivity(), android.R.style.Theme_Holo_Light_Dialog));
alertDialogBuilder.setView(promptsView);
final EditText mEditText = (EditText) promptsView
.findViewById(R.id.editText1);
final EditText mEditText2 = (EditText) promptsView
.findViewById(R.id.editText2);
final EditText mEditText3 = (EditText) promptsView
.findViewById(R.id.editText3);
alertDialogBuilder
.setCancelable(false)
.setPositiveButton("SUBMIT",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
// get user input and set it to result
// edit text
mStringOldPass = mEditText.getText().toString().trim();
mStringNewPass = mEditText2.getText().toString().trim();
if (mEditText.getText().toString().trim()
.equalsIgnoreCase("")) {
mAllMethods.ShowDialog(getActivity(),
"Validation Error", "Enter Old Password",
"Ok");
} else if (mEditText2.getText().toString().trim()
.equalsIgnoreCase("")) {
mAllMethods.ShowDialog(getActivity(),
"Validation Error", "Enter New Password",
"Ok");
} else if (mEditText3.getText().toString().trim()
.equalsIgnoreCase("")) {
mAllMethods.ShowDialog(getActivity(),
"Validation Error",
"Enter Confirm Password", "Ok");
}
else if (!mEditText3
.getText()
.toString()
.trim()
.equalsIgnoreCase(
mEditText2.getText().toString().trim())) {
mAllMethods.ShowDialog(getActivity(),
"Validation Error",
"Enter new password not matching", "Ok");
} else {
if (mAllMethods.check_Internet() == true) {
mDialogPin.dismiss();
InputMethodManager imm = (InputMethodManager) getActivity()
.getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(
mEditText3.getWindowToken(), 0);
new changePass().execute();
} else {
mAllMethods.ShowDialog(getActivity(),
"Validation Error",
"Network not available", "Ok");
}
}
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
In above code i check 3 validation inside positive button so my validation work fine but my alert dialog getting close at a same time , i want to remain open when my validation condition fire on it so any idea how can i solve it ?
Upvotes: 0
Views: 602
Reputation: 1428
Also you can use like this..
Button b = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i(TAG, "ok button is clicked");
}
});
Upvotes: 0
Reputation: 7901
Create a listener class first
class CustomListener implements View.OnClickListener {
private final Dialog dialog;
public CustomListener(Dialog dialog) {
this.dialog = dialog;
}
@Override
public void onClick(View v) {
// Do whatever you want here
// If tou want to close the dialog, uncomment the line below
//dialog.dismiss();
}
}
And when showing the dialog write
AlertDialog dialog = dialogBuilder.create();
dialog.show();
Button button = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
button.setOnClickListener(new CustomListener(dialog));
Upvotes: 1