如何在提交前检查是否在编辑文本中输入了值?

How to Check whether a value is entered in editexts before submitting?

我有大约 5 个 edittexts.When 我点击提交按钮,它必须检查是否输入了所有字段或 not.Along 如果没有输入任何值,焦点必须转到那个所需 edittext.If 有许多编辑文本为空,然后焦点必须自上而下 order.I 使用了 seterror 方法但是当我输入该编辑文本时,错误消息不是 going.After 输入值focus是不是要去下一个edittext.how来解决这个问题?

caseno、dateloss、policy_rep、reg_book、Dri_lic 是不同的编辑文本 used.I 已经为下面的一个编辑文本编写了代码

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

        }
    });

检查这个:

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

    }
}

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(),这将相应地 return truefalse

btnsubmit.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

        if(validateEditTexts()){

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

        }
    }
});

试试这个。这会起作用。

在你的按钮点击上使用这个

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

1) 创建此方法

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

2) 将数据发送给它进行验证

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

维护 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,以在输入文本后清除错误。

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

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

}

目前这个设置对我有用...感谢回答的人