2015-02-18 5 views
0

У меня есть около 5 edittexts.Когда я нажимаю кнопку отправки, он должен проверить, введены ли все поля или нет. Помимо этого, если какое-либо значение не вводится, фокус должен идти к желаемому редактору. Если есть много editexts пуст, тогда фокус должен идти сверху вниз. Я использовал метод seterror, но когда я набираю этот editext, ошибка msg не собирается. После ввода значений фокус не подходит к следующему edittext.how, чтобы решить эту проблему вопрос?Как проверить, введено ли значение в editexts перед отправкой?

caseno, dateloss, policy_rep, reg_book, Dri_lic являются различные editexts used.I написал код для одного editext ниже

caseno.setOnFocusChangeListener(new OnFocusChangeListener() { 

       @Override 
       public void onFocusChange(View v, boolean hasfocus) 

       { 



        if(!hasfocus && caseno.getText().length()==0) 
         {  
           new Handler().postDelayed(new Runnable() 
           { 

           @Override 
           public void run() { 
            //ev2.clearFocus(); 



           dateloss.clearFocus(); 
           policy_rep.clearFocus(); 
           reg_book.clearFocus(); 
           Dri_lic.clearFocus(); 
            caseno.requestFocus(); 
            caseno.setError("Enter this field"); 

           } 
         }, 100); 

        } 





       } 
      }); 



btnsubmit.setOnClickListener(new OnClickListener() { 



     @Override 
     public void onClick(View v) { 





      if(caseno!=null||dateloss!=null||policy_rep!=null||reg_book!=null||Dri_lic!=null) 
      { 


      Send_reportclaim_Async reportsync=new Send_reportclaim_Async(); 
      reportsync.execute(); 
      } 

     } 
    }); 

ответ

1

Android обеспечивает метод setError() для это:

if(edttxtDescription.getText().toString().trim().equals("")) 
{ 
    edttxtDescription.setError("Please provide description"); 
} 

Определите способ проверки того, является ли ваш EditText s имеют действительные данные:

private boolean validateEditTexts() 
{ 
    boolean valid = true; 

    if(edttxtDescription.getText().toString().trim().equals("")) 
    { 
     edttxtDescription.setError("Please provide description"); 
     valid = false; 
    } 

    // Similarly check all your EditTexts here and set the value of valid 

    ...... 
    ...... 

    return valid; 

} 

Чтобы проверить все ваши EditTexts, вызов validateEditTexts() который будет возвращать true или false соответственно.

btnsubmit.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     if(validateEditTexts()){ 

      Send_reportclaim_Async reportsync=new Send_reportclaim_Async(); 
      reportsync.execute(); 

     } 
    } 
}); 

Попробуйте это. Это сработает.

+0

ОК, когда я нажимаю кнопку отправить сбщ ошибки shows.When я ввести значения в этом editext еще погрешность (набор сообщение об ошибке). Я думаю, что до следующей кнопки нажмите кнопку «Ошибка». – zyonneo

+0

см. Отредактированный ответ –

+0

вы пробовали это ?? –

1

Проверьте это:

for(EditText edit : editTextList){ 
    if(TextUtils.isEmpty(edit.getText()){ 
     // EditText is empty 

    } 
} 
0

Используйте это на кнопку мыши

if(!textView1.toString().isEmpty() && !textView2.toString().isEmpty() && ...) 
{ 
............ 
} 
0

1) создать этот метод

public static boolean isNullOrEmpty(String input) { 
    return input == null || input.isEmpty(); 
} 

2) отправить на него данные для проверки

boolean answer = isNullOrEmpty(editText.gettext().toString()); 
1

ПОДДЕРЖАНИЕ массив ссылок EditText: Как

EditText[] allEts = { caseno, dateloss, policy_rep, reg_book, Dri_lic }; 

Написать ниже код в OnClick на кнопке отправки:

for (EditText editText : allEts) { 
     String text = editText.getText().toString(); 
     if (text.length() == 0) { 
      editText.setError("enter this field"); 
      editText.requestFocus(); 
      break; 
     } 
    } 

И реализовать addTextChangedListener для всех edittexts, чтобы сбросить ошибку после ввода текста.

caseno.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, 
       int count) { 
      Editable text = caseno.getText(); 
      if (caseno.getError() != null && text != null 
        && text.length() > 0) { 
       caseno.setError(null); 
      } 

     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 

     } 
    }); 
+0

@ пользователь543..thks .. – zyonneo

0
btnsubmit.setOnClickListener(new OnClickListener() { 





     @Override 
     public void onClick(View v) { 




if(TextUtils.isEmpty(caseno.getText().toString())) 
      { 


     caseno.requestFocus(); 
     Toast.makeText(getApplicationContext(),"Enter the required fields", Toast.LENGTH_LONG).show(); 

      return; 
     } 

      if(TextUtils.isEmpty(dateloss.getText().toString())) 
      { 


       dateloss.requestFocus(); 
       Toast.makeText(getApplicationContext(),"Enter the required fields", Toast.LENGTH_LONG).show(); 

      return; 
     } 

} 

В настоящее время эта установка работает для меня ... Thnks тех, кто ответил

Смежные вопросы