Android 查找是否填写了数字编辑文本
我有一个名为countOfProduct的EditText(数字EditText类型,当用户想要插入其中时,只需要键盘显示的数字)和一个if,我想看到最终用户是否插入数字。 我在谷歌上搜索并找到了很多解决方案,但没有一个对我有效 以下是我的假设: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
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
}