Here is my code for a dialog, I want to disable positive button if text size in edit-text in greater than 5 and enable it if size <= 5
private void myDialog(String title) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
// Get the layout inflater
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View dialogView = inflater.inflate(R.layout.new_dialog, null);
// Inflate and set the layout for the dialog
// Pass null as the parent view because its going in the dialog layout
builder.setView(dialogView);
final EditText dialogEdittext = (EditText) dialogView.findViewById(R.id.dialog_editText);
final TextView dialogMessage = (TextView) dialogView.findViewById(R.id.dialog_limit);
dialogEdittext.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
// if text length is greater than 5 disable positive button
// else enable
}
});
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
}
});
final Dialog dialog = builder.create();
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
dialog.show();
}
Try something like this:
@Override
public void afterTextChanged(Editable s) {
if (s.length() > 5) {
dialog.getButton(Dialog.BUTTON_POSITIVE).setEnabled(false);
} else {
dialog.getButton(Dialog.BUTTON_POSITIVE).setEnabled(true);
}
}
where dialog
is:
final AlertDialog dialog = builder.create();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With