检查EditText是否为空.

Win*_*ona 208 android android-edittext

EditTexts在Android中有5个用户输入.我想知道我是否可以有一个方法来检查所有5,EditTexts如果它们是null.有没有办法做到这一点?

cva*_*mar 347

我做过一次这样的事情;

EditText usernameEditText = (EditText) findViewById(R.id.editUsername);
sUsername = usernameEditText.getText().toString();
if (sUsername.matches("")) {
    Toast.makeText(this, "You did not enter a username", Toast.LENGTH_SHORT).show();
    return;
}
Run Code Online (Sandbox Code Playgroud)

  • 你们都比它需要的更难:TextUtils.isEmpty(editText.getText()); (60认同)
  • 很抱歉迂腐,但你不用java编写函数,他们称之为方法... (43认同)
  • 对不起,忘了你有五个.您可以创建一个执行相同操作的函数并将其调用五次 - 或者您可以遍历五个EditText. (4认同)
  • 我通常使用if(usernameEditText.getText().toString().toString().isEmpty()) (4认同)
  • @MiralSarwar 尝试检查“EditText”值,如下所示:“editText.getText().toString().trim()”(请注意,我添加了“.trim()”,它应该删除额外的空格)。 (2认同)

SBJ*_*SBJ 181

private boolean isEmpty(EditText etText) {
    if (etText.getText().toString().trim().length() > 0) 
        return false;

    return true;
}
Run Code Online (Sandbox Code Playgroud)

或作为每个audrius

  private boolean isEmpty(EditText etText) {
        return etText.getText().toString().trim().length() == 0;
    }
Run Code Online (Sandbox Code Playgroud)

如果函数返回false意味着edittext是not empty,则返回true意味着edittext是empty...

  • +1检查长度比检查空字符串恕我直言要好.在检查长度之前修剪字符串将有助于不计算空格字符.顺便说一下,没有使用`return etText.getText().toString().trim().length()== 0`而不是真/假分支的任何特殊原因? (29认同)

Mil*_*ank 140

要验证EditText,请使用EditText#setError 方法显示错误,并检查空值或空值使用内置的android类 TextUtils.isEmpty(strVar),如果strVar为null或零长度,则返回true

EditText etUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = etUserName.getText().toString();

 if(TextUtils.isEmpty(strUserName)) {
    etUserName.setError("Your message");
    return;
 }
Run Code Online (Sandbox Code Playgroud)

来自Google搜索的图片


Hou*_*ine 36

试试这个 :

EditText txtUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = usernameEditText.getText().toString();
if (strUserName.trim().equals("")) {
    Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show();
    return;
}
Run Code Online (Sandbox Code Playgroud)

或者像这样使用TextUtils类:

if(TextUtils.isEmpty(strUserName)) {
    Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show();
    return;
}
Run Code Online (Sandbox Code Playgroud)

  • ......这是最好的方法.其他示例允许未考虑的输入. (3认同)

Qw4*_*4z1 27

这里派对的方式很晚,但我只需添加Android自己的TextUtils.isEmpty(CharSequence str)

如果字符串为null或0-length,则返回true

因此,如果您将五个EditTexts放在一个列表中,那么完整的代码将是:

for(EditText edit : editTextList){
    if(TextUtils.isEmpty(edit.getText()){
        // EditText was empty
        // Do something fancy
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @Hunt那是真的,但那时它不再是空的或空的.也许TextUtils.isEmpty(sUserName.trim())适合删除所有空格,以防用户输入一个或多个空格? (3认同)

Xar*_*mer 19

其他答案是正确的,但是做的很简单

if(editText.getText().toString().isEmpty()) {
     // editText is empty
} else {
     // editText is not empty
}
Run Code Online (Sandbox Code Playgroud)


mar*_*itz 10

试试这个

TextUtils.isEmpty(editText.getText());
Run Code Online (Sandbox Code Playgroud)


JPM*_*aes 7

您可以使用length()EditText.

public boolean isEditTextEmpty(EditText mInput){
   return mInput.length() == 0;
}
Run Code Online (Sandbox Code Playgroud)


小智 6

我通常会做SBJ提出的建议,但反过来说.我只是通过检查肯定结果而不是双重否定来更容易理解我的代码.你可能会问如何检查空的EdiTexts,但你真正想知道的是它是否有任何内容而不是它是空的.

像这样:

private boolean hasContent(EditText et) {
    // Always assume false until proven otherwise
    boolean bHasContent = false; 

    if (et.getText().toString().trim().length() > 0) {
        // Got content
        bHasContent = true;
    }
    return bHasContent;
}
Run Code Online (Sandbox Code Playgroud)

作为SBJ,我更喜欢返回"没有内容"(或false)作为默认值以避免异常,因为我对内容进行了检查.这样你就可以绝对肯定true你的支票已经"批准"了.

我也认为if它的调用看起来也更清洁了:

if (hasContent(myEditText)) {
// Act upon content
} else {
// Got no content!
}
Run Code Online (Sandbox Code Playgroud)

它非常依赖于偏好,但我发现这更容易阅读.:)


Igo*_*aya 5

如果EditText为空,为什么不禁用按钮呢?恕我直言,这看起来更专业:

        final EditText txtFrecuencia = (EditText) findViewById(R.id.txtFrecuencia);  
        final ToggleButton toggle = (ToggleButton) findViewById(R.id.toggleStartStop);
        txtFrecuencia.addTextChangedListener(new TextWatcher() {
        @Override
        public void afterTextChanged(Editable s) {
            toggle.setEnabled(txtFrecuencia.length() > 0);
        }

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

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {

        }
       });
Run Code Online (Sandbox Code Playgroud)