如何在提交之前检查是否在editexts中输入了值?

时间:2015-02-18 12:45:40

标签: android validation android-edittext

我有大约5个edittexts。当我点击提交按钮时,它必须检查是否输入了所有字段。如果没有输入任何值,则必须使用它,焦点必须转到所需的edittext。如果有许多editexts为空,然后焦点必须按自上而下的顺序。我使用了seterror方法,但是当我输入该editext时,错误消息不会进入。输入值后,焦点不会转到下一个edittext.how来解决这个问题?

caseno,dateloss,policy_rep,reg_book,Dri_lic是使用的不同editexts。我为下面的一个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();
            }

        }
    });

6 个答案:

答案 0 :(得分:1)

检查一下:

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

    }
}

答案 1 :(得分:1)

Android为此提供了setError()方法:

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

定义一种方法来检查您的EditText是否有有效数据:

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(),相应地返回truefalse

btnsubmit.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

        if(validateEditTexts()){

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

        }
    }
});

试试这个。这将有效。

答案 2 :(得分: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;
        }
    }

并且,为所有edittexts实现addTextChangedListener以在输入文本后清除错误。

    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) {

        }
    });

答案 3 :(得分:0)

点击按钮时使用此功能

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

答案 4 :(得分:0)

1)创建此方法

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

2)向其发送数据以进行验证

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

答案 5 :(得分: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;
         }

}

目前这个设置对我有用......请回答那些人