如何检查EditText Android中的空条目

时间:2017-02-03 17:46:23

标签: android android-edittext

我遇到问题,我尝试过在我的程序的其他部分工作的代码,但这不能正常工作。我正在编码,以确保用户不提交空表格。

                 <EditText
                    android:id="@+id/msage"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/edittext"
                    android:hint="Write Something...."
                    android:maxLines="4"
                    android:elevation="8dp"
                    android:textSize="14dp"
                    android:text=""
                    android:gravity="top"
                    android:textColor="@color/colorAccent"
                    android:textColorHint="@color/colorAccent"
                   android:layout_margin="40dp"/>

然后在我的活动上:

 EditText msg;
 msg = (EditText)findViewById(R.id.msage);

 String msgContent =  msg.getText().toString().trim();
    if (msgContent.equals("") || msgContent.length() <= 15) {
        msg.setError("Enter valid Message");
        return;
    }

   //---below: code to submit form to server

我甚至尝试过TextUtils.isEmpty

修改

所以,经过12个多小时的拔毛,我终于找到了逻辑错误的地方。

我的代码被封装在

public void btnSendFeedBack(View view) {
    // Code
}

使用android:clickable="true" and android:onClick="btnSendFeedBack",但这是我发现的错误。

被@Charuz追赶后,我改为

findViewById(R.id.sendFeedback).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {

            msgContent = msg.getText().toString().trim();
            //email
            if (msgContent.equals("") || msgContent == null || msgContent.length() < 15) {
                msg.setError("Enter a valid Feedback");
                return;
            }

            SendFeedback();
        }
    });

它有效。

谢谢你的时间......干杯!!!

6 个答案:

答案 0 :(得分:2)

您没有为代码添加其他条件,它检查空字符串并将其发送到服务器。

   if (msgContent.equals("") || msgContent.length() <= 15) {
        msg.setError("Enter valid Message");
    }
    else
    {
//submit form to server
    }

答案 1 :(得分:2)

在将表单发送到服务器之前,只需验证EditText值。

String val=EditText.getText().toString();

在按钮内单击使用逻辑,

if(val.length()>15){

  // Your logic for submit form to server
}else{
  // Error message as per your requirement
}

答案 2 :(得分:1)

这是一个检查Edittext是否为空的简单逻辑

private boolean isEmpty(EditText etText) {
    return etText.getText().toString().trim().length() == 0;
}
你的代码中的

试试这个:

String msgContent =  msg.getText().toString().trim();
if ((msgContent.length() == 0) || (msgContent.length() <= 15)) {
    msg.setError("Enter valid Message");
    return;
}

答案 3 :(得分:1)

删除 EditText 中的行:

 android:text=""

尝试:

 if(TextUtils.isEmpty(msg.getText().toString()))

答案 4 :(得分:1)

首先尝试在true块上获取条件if并将数据发送到服务器:

EditText msg;
msg = (EditText)findViewById(R.id.msage);

String msgContent =  msg.getText().toString().trim();
if (!TextUtils.isEmpty(msgContent) || msgContent.length() >= 15) {
    //Send data to server

}else{
   msg.setError("Enter valid Message");
   //return;
}

Order of Evaluation of Logic Operators

答案 5 :(得分:0)

尝试使用代码中的 addTextChangedListener

-host 10.11.xx.xx

这里我使用了布尔值VALID_MESSAGE。当用户输入长度大于15的文本时,它变为真。当擦除输入的文本时,它也会变为false。 因此,在发送到服务器时,您只需要检查标志是否为真

afterTextChanged 中也可以这样做。 没有太大区别。