Android 查找是否填写了数字编辑文本

Android 查找是否填写了数字编辑文本,android,if-statement,android-edittext,Android,If Statement,Android Edittext,我有一个名为countOfProduct的EditText(数字EditText类型,当用户想要插入其中时,只需要键盘显示的数字)和一个if,我想看到最终用户是否插入数字。 我在谷歌上搜索并找到了很多解决方案,但没有一个对我有效 以下是我的假设: if(!countOfProduct.getText().toString().equals("") || !countOfProduct.getText().toString().matches("")|| !countOfProduc

我有一个名为countOfProduct的EditText(数字EditText类型,当用户想要插入其中时,只需要键盘显示的数字)和一个if,我想看到最终用户是否插入数字。 我在谷歌上搜索并找到了很多解决方案,但没有一个对我有效

以下是我的假设:

 if(!countOfProduct.getText().toString().equals("") ||
   !countOfProduct.getText().toString().matches("")||
   !countOfProduct.getText().toString().matches(null) ||
   !countOfProduct.getText().toString().equals(null) ||
   !countOfProduct.getText().toString().isEmpty() ||
   !countOfProduct.getText().equals(null) ||
   (countOfProduct.getText().length() ==0) ||
   (countOfProduct.getText().toString().length() ==0))
我该怎么办?

试试:

 String myString = countOfProduct.getText().toString();
 if (!TextUtils.isEmpty(myString)) {
    if (tryParseInt(myString))
        Log.d("IS A NUMBER", "");

 }


 boolean tryParseInt(String value) {  
 try {  
     Integer.parseInt(value);  
     return true;  
  } catch (NumberFormatException e) {  
     return false;  
  }  
 }

始终记住:
EditText.getText()
永远不会返回
null

如果您不关心空间,仅此一项就足够了:

if(countOfProduct.getText().length() != 0){
     // This means that the EditText is not empty
}
如果您确实关心空间,请使用以下选项:

if(countOfProduct.getText().toString().trim().length() != 0){
     // This means that the EditText is not empty.
}

如果您希望用户只插入数字,首先必须使用android:inputType属性将其声明到xml布局中:

<EditText
   android:id="@+id/count_of_product"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:inputType="number" >

检查以了解如何使用TextWatcher

我倾向于使用
String.isEmpty()
检查:

if(myEditText.getText().toString().isEmpty()) {
   // Bad input
}
这对我来说一直都很好

编辑

注意,
TextUtils.isEmpty()
可以接受一个
可编辑的
对象(因为这个类实现了
CharSequence
),所以如果您愿意,可以使用该方法避免调用
.toString()


我想你应该使用
TextWatcher
来编辑
EditText
。。!!您想检查编辑文本是否为空,还是检查用户在键入时正在键入的内容?@MirianaItani我想检查它是否为空。不管他/她插入什么。我通常做的是:字符串!=空&!string.trim().isEmpty();我通过以下方式从edittext获取字符串:string=textfilde.getText().toString。让我知道,如果这对你不起作用。正如您所看到的,它是一种多种类型的editText。它是什么类型的
editText
并不重要。只要它是一个
EditText
。如果我没有错,您只想检查
EditText
是否为空,对吗?我刚才使用了:If(!TextUtils.isEmpty(countOfProduct.getText())并且它可以工作。Thx很多。您的代码可能无法编译,因为
EditText.getText()
返回一个可编辑的对象,而不是字符串:@McAdam331是的,对不起,我犯了一个错误。现在它应该可以工作了。你是对的,我应该使用TextUtils类。但是我没有空调用。toString对我不起作用。这里(在这个范围中,我检查了editText)我调用一个SP,并将值传递给该SP。如果该值包含null,程序将不幸停止!但当我使用TextUtil类进行检查时,结果是ok的,并得到一个Toas.makeText()。显示他/她应该插入一些数字。以下是我使用的!TextUtils.isEmpty(countOfProduct.getText())再说一次thx,@The.Only.One我很高兴你让它工作了,我只是不明白为什么我的第一个解决方案没有工作。不管怎样,祝你好运!
if(myEditText.getText().toString().isEmpty()) {
   // Bad input
}
if(TextUtils.isEmpty(myEditText.getText())) {
   // Bad input
}