Как проверить несколько полей edittext с помощью всплывающего сообщения или диалогового окна с предупреждением?

1

Я хотел бы знать, как проверить мои 4 поля edittext, если одно или несколько из этих полей остаются пустыми после нажатия кнопки для обработки входов. Я искал множество решений, таких как использование тостов, но он считает, что он не подходит для нескольких полей edittext и использует текстовые элементы. Я хотел бы, чтобы приложение отображало всплывающее сообщение или диалоговое окно с предупреждением, в котором говорилось: "Пожалуйста, заполните необходимые поля".

Любая помощь будет оценена по достоинству.

  • 0
    используйте setError. например / - edittext.setError ("");
  • 0
    Это подходит для проверки нескольких полей? Если одно или несколько полей оставлены пустыми для пользователя
Показать ещё 2 комментария
Теги:
validation
null

5 ответов

2

Вы можете использовать ниже общую функцию для проверки значений 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.
   }
  • 0
    Я получаю ошибки, связанные с общедоступным static void checkEntryForEmptyValue (EditText p_editText, String p_nullMsg), он говорит, что недопустимый модификатор для параметра String и final разрешен только, а также checkEntryForEmptyValue не может быть разрешен для типа.
  • 0
    Это применимо к нескольким полям?
Показать ещё 1 комментарий
1

Используйте эту функцию проверки, когда вы нажимаете кнопку, и вы можете проверить сообщение предупреждения после того, как метод выполнен

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;
}
1

u может использовать некоторые подсказки для проверки, такие как qtip или poshytip

http://vadikom.com/demos/poshytip/

http://craigsworks.com/projects/qtip/

Напишите функцию проверки, чтобы проверить все текстовые поля и добавить объект всплывающей подсказки с соответствующими полями, которые не позволяют выполнить проверку.

  • 0
    Это слишком сложно для меня. Все равно, спасибо за помощь.
  • 0
    jsfiddle.net/kabichill/VXKv2 проверьте эту скрипку. Надеюсь, это легко для тебя
1

Попробуй это:

РЕДАКТИРОВАТЬ:

Вызовите это 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 количество элементов управления вводом с одним вызовом.

Благодарю.

  • 0
    Я получаю предупреждение о переменной успеха в логическом значении success = formIsValid (rl);
  • 0
    А также в классе, это говорит, что класс является необработанным типом.
Показать ещё 2 комментария
1

Самое простое соображение - проверить, что если поля пустые, тогда отобразите диалог, это простой фрагмент кода

  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();
          /* }
          });*/
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню