我正在尝试验证TextInputLayout
中的AlertDialog.Builder
。请帮助我。我试图以一种简单的方式来验证它,但是当按下肯定按钮时,什么也没发生。
谢谢
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();
}
这是我的验证功能
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;
}
}
答案 0 :(得分:3)
您应该使用TextUtils
if(TextUtils.isEmpty(etWeight))
注意
您应该使用 TextInputEditText
而不是 TextInputLayout 。
我认为您的XML是
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<android.support.design.widget.TextInputEditText
android:id="@+id/your_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</android.support.design.widget.TextInputLayout>
然后
String etWeight = textInputEditTextOBJ.getText().toString().trim();
答案 1 :(得分:1)
尝试一下
public boolean validateField() {
String etWeight = txtUpdateWeight.getEditText().getText().toString().trim();
if (TextUtils.isEmpty(etWeight)) {
txtUpdateWeight.setError("Enter your weight");
return false;
} else {
txtUpdateWeight.setError(null);
return true;
}}
还添加其他
if (!validateField()) {
return;
}else{
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();
}