I'm trying to validate an TextInputLayout
in an AlertDialog.Builder
. Pls help me. I've tried to validate it in a simple way but when the positive button is pressed, nothing happens.
Thanks
private TextInputLayout txtUpdateWeight;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), R.style.MyDialogTheme);
final FirebaseDatabase db = FirebaseDatabase.getInstance();
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.layout_update_weight_dialog, null);
txtUpdateWeight = view.findViewById(R.id.tlUpdateWeight);
builder.setView(view)
.setTitle("Update Weight")
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setPositiveButton("Send", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (!validateField()) {
return;
}
String etWeight = txtUpdateWeight.getEditText().getText().toString().trim();
DatabaseReference myDB = db.getReference().child("Additional details");
Map<String, Object> updates = new HashMap<>();
updates.put("weight", etWeight);
myDB.updateChildren(updates);
Toast.makeText(getContext(), "Weight updated Successfully", Toast.LENGTH_SHORT).show();
}
});
return builder.create();
}
This is my validation function
public boolean validateField() {
String etWeight = txtUpdateWeight.getEditText().getText().toString().trim();
if (etWeight.isEmpty()) {
txtUpdateWeight.setError("Enter your weight");
return false;
} else {
txtUpdateWeight.setError(null);
return true;
}
}