Я хотел бы знать, как проверить мои 4 поля edittext, если одно или несколько из этих полей остаются пустыми после нажатия кнопки для обработки входов. Я искал множество решений, таких как использование тостов, но он считает, что он не подходит для нескольких полей edittext и использует текстовые элементы. Я хотел бы, чтобы приложение отображало всплывающее сообщение или диалоговое окно с предупреждением, в котором говорилось: "Пожалуйста, заполните необходимые поля".
Любая помощь будет оценена по достоинству.
Вы можете использовать ниже общую функцию для проверки значений Null для edittext:
public static boolean m_isError; public static void checkEntryForEmptyValue(EditText p_editText, String p_nullMsg) { if (p_editText != null || p_nullMsg != null) { // use trim() while checking for blank values if ((p_editText.getText().toString().trim().equalsIgnoreCase("")) || (p_editText.getText().toString().trim().length() <= 0)) { m_isError = true; p_editText.setError(p_nullMsg); p_editText.requestFocus(); } } } }
Используйте приведенную выше функцию, как показано ниже, в своем прослушивателе кнопок:
CommonUtil.m_isError = false; CommonUtil.checkEntryForEmptyValue(edittext,getResources(). getString(R.string.MessageEmpty)); if (!CustomValidator.m_isError) { Toast.makeText(getApplicationContext(),"Success", Toast.LENGTH_SHORT).show(); } else { //Your dialog with the error messages. }
Используйте эту функцию проверки, когда вы нажимаете кнопку, и вы можете проверить сообщение предупреждения после того, как метод выполнен
boolean flag_1= true,flag_2=true,flag_3=true;
String alertmsg;
,
private boolean validate()
{
EditText et1 = (EditText)findViewById(R.id.et1);
EditText et2 = (EditText)findViewById(R.id.et2);
EditText et3 = (EditText)findViewById(R.id.et3);
if(et1.getText().toString().isEmpty())
{
alertmsg+= "Please fill 1st\n";
flag_1 = false;
}
if(et2.getText().toString().isEmpty())
{
alertmsg+= "Please fill 2nd\n";
flag_2 = false;
}
if(et3.getText().toString().isEmpty())
{
alertmsg+= "Please fill 3rd";
flag_3 = false;
}
return flag_1||flag_2||flag_3;
}
u может использовать некоторые подсказки для проверки, такие как qtip или poshytip
http://vadikom.com/demos/poshytip/
http://craigsworks.com/projects/qtip/
Напишите функцию проверки, чтобы проверить все текстовые поля и добавить объект всплывающей подсказки с соответствующими полями, которые не позволяют выполнить проверку.
Попробуй это:
РЕДАКТИРОВАТЬ:
Вызовите это onClick
вашей кнопки ввода процесса:
RelativeLayout rl = (RelativeLayout) findViewById(R.id.mRlayout1);
boolean success = formIsValid(rl);
if(success == false){
// alert dialog box
}
else{
// process ahead
}
Объявите эту функцию:
РЕДАКТИРОВАТЬ:
public boolean formIsValid(RelativeLayout layout) {
for (int i = 0; i < layout.getChildCount(); i++) {
View v = layout.getChildAt(i);
Class<? extends View> c = v.getClass();
if (c == EditText.class) {
EditText et = (EditText) v;
if(et.getText().toString().equals(""))
return false;
//Toast.makeText(getApplicationContext(), ""+et.getText().toString(), Toast.LENGTH_LONG).show();
}
}
return true;
}
Благодаря этому вы можете проверить N количество элементов управления вводом с одним вызовом.
Благодарю.
Самое простое соображение - проверить, что если поля пустые, тогда отобразите диалог, это простой фрагмент кода
private void checkEntries()
{
if(!(email.getText().toString().equals("")))
{
if(!(pass.getText().toString().equals("")))
{
if(UIHelper.getInstance().emailAddressValidation(email.getText().toString()))
{
if(pass.getText().length()>=5)
{
sendLoginRequest(email.getText().toString(),pass.getText().toString(),Constants.PHONE_ID);
}
else
{
dialogBoxInUIthread("String","Password length should be greater than 5 ",LoginController.this,true);
}
}
else
{
dialogBoxInUIthread("String","Invalid Email Id",LoginController.this,true);
}
}
else
{
dialogBoxInUIthread("String","Please enter password",LoginController.this,true);
}
}
else
{
dialogBoxInUIthread("String","Please enter email",LoginController.this,true);
}
}
private void dialogBoxInUIthread(final String title,final String msg, Context context,final boolean completed) {
/* runOnUiThread(new Runnable() {
public void run() {*/
AlertDialog.Builder alertbox = new AlertDialog.Builder(LoginController.this);
alertbox.setTitle(title);
alertbox.setMessage(msg);
alertbox.setNeutralButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
if(completed){
}else{ }
}
});alertbox.show();
/* }
});*/
}