我有EditText
和Button
。
我想要在点击EditText
时Button
为空。我希望将消息显示为祝酒词,例如"请输入一个号码"。
答案 0 :(得分:3)
您可以这样做:
boolean hasValue = editText.getText().length() > 0;
或
boolean hasValue = !editText.getText().toString().isEmpty();
或确保它不仅包含空格:
boolean hasValue = !editText.getText().toString().trim().isEmpty();
答案 1 :(得分:1)
点击按钮时使用此功能:
EditText editText = (EditText) view.findViewById(EditTextID);
if(editText.getText().toString().length()==0) {
Toast alert = Toast.makeText(context, toast_message, Toast.LENGTH_SHORT);
alert.show();
}
答案 2 :(得分:1)
最简洁的方法是TextUtils.isEmpty(editText.getText())
我说这是最干净的方式是因为:
CharSequence
和String
之间进行无意义的转换。这会创建一个对象。 editText.getText()
返回Editable
,调用toString()
会创建一个不好的附加对象。根据我的经验,此方法也永远不会返回null。null
和length
支票。如果您查看TextUtils.isEmpty()
的代码,它基本上会检查CharSequence
是否为null
且长度为零。String
或CharSequence
个对象一起使用,Editable
是CharSequence
的实现。如果要检查修剪过的字符串的长度。然后使用:
TextUtils.isEmpty(editText.getText())
&& TextUtils.getTrimmedLength(editText.getText()) == 0
如果需要,您可以创建自己的实用程序方法来执行此操作,这样您就不必在代码中重复添加这么长的条件。
我会将OnFocusChangeListener
附加到您的EditText
以检查价值变化或TextWatcher
或两者,具体取决于您的要求的严重程度。如果您的字段有焦点而丢失,请使用OnFocusChangeListener
进行验证,如果您的字段具有焦点并且用户正在键入并删除内容或内容太短,请使用TextWatcher
让他们知道。
答案 3 :(得分:0)
在按钮的onClickListener()中:
int length = editText.getText().length();
if(length == 0)
{
Toast.makeText(getActivity(), "Please enter a number",Toast.LENGTH_LONG).show();
}
答案 4 :(得分:0)
你可能已经找到了答案,但对于那些来这里希望找到答案的人来说,这是怎么回事:
你必须首先在你的按钮功能中创建一个String对象或Int对象点击这样写:
@Override
public void onClick(View view) {
String numberValue;
numberValue = yourEditText.getText().toString();
if (emailEtValue.matches("")){
Snackbar sbEmptyValue = Snackbar.make(view, "You must enter an Integer Value", Snackbar.LENGTH_LONG);
sbEmptyValue.show();
} else {
//DO THE THING YOU WANT
}
}