Answers:
我曾经做过这样的事情;
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;
}
private boolean isEmpty(EditText etText) {
if (etText.getText().toString().trim().length() > 0)
return false;
return true;
}
或按照澳大利亚
private boolean isEmpty(EditText etText) {
return etText.getText().toString().trim().length() == 0;
}
如果函数return false
表示edittext为,not empty
而return true
表示edittext为empty
...
return etText.getText().toString().trim().length() == 0
而不是对/错分支?
private Boolean isEmpty(EditText etText){return etText.Text.ToString().Trim().Length == 0;}
VS 2019
为了验证EditText,请使用EditText#setError 方法显示错误并检查空值或null值,请使用内置的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;
}
)
在if语句中添加另一个。
usernameEditText
是EditText
对象,现在将其重命名为 etUserName
.toString();
不需要
试试这个 :
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;
}
或像这样使用TextUtils类:
if(TextUtils.isEmpty(strUserName)) {
Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show();
return;
}
在这里参加聚会很晚,但我只需要添加Android自己的TextUtils.isEmpty(CharSequence str)
如果字符串为null或长度为0,则返回true
因此,如果将五个EditText放在列表中,则完整的代码为:
for(EditText edit : editTextList){
if(TextUtils.isEmpty(edit.getText()){
// EditText was empty
// Do something fancy
}
}
isEmpty()
接受CharSequence
,它Editable
扩展了,因此无需调用.toString()
它。
其他答案是正确的,但可以简短地完成
if(editText.getText().toString().isEmpty()) {
// editText is empty
} else {
// editText is not empty
}
如果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) {
}
});
您可以使用length()
from EditText
。
public boolean isEditTextEmpty(EditText mInput){
return mInput.length() == 0;
}
我通常按照SBJ的建议去做,但反之亦然。我只是通过检查肯定的结果而不是双重否定发现更容易理解我的代码。您可能会问如何检查EdiText是否为空,但是您真正想知道的是它是否具有任何内容,而不是不为空。
像这样:
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;
}
作为SBJ,我更喜欢返回“没有内容”(或false
)作为默认值,以避免出现异常,因为我使内容检查不方便了。这样,您将完全确定true
您的支票已“批准”了。
我还认为if
调用它看起来也更简洁:
if (hasContent(myEditText)) {
// Act upon content
} else {
// Got no content!
}
这在很大程度上取决于首选项,但是我发现这更易于阅读。:)
我使用这种方法trim()
来避免空格:
EditText myEditText = (EditText) findViewById(R.id.editUsername);
if ("".equals(myEditText.getText().toString().trim()) {
Toast.makeText(this, "You did not enter a value!", Toast.LENGTH_LONG).show();
return;
}
如果您有多个EditText的示例
if (("".equals(edtUser.getText().toString().trim()) || "".equals(edtPassword.getText().toString().trim()))){
Toast.makeText(this, "a value is missing!", Toast.LENGTH_LONG).show();
return;
}
您还可以在一个If条件中检查所有EditText字符串:
if (mString.matches("") || fString.matches("") || gender==null || docString.matches("") || dString.matches("")) {
Toast.makeText(WriteActivity.this,"Data Incomplete", Toast.LENGTH_SHORT).show();
}
“检查一下,确定您会喜欢的。”
log_in.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
username=user_name.getText().toString();
password=pass_word.getText().toString();
if(username.equals(""))
{
user_name.setError("Enter username");
}
else if(password.equals(""))
{
pass_word.setError("Enter your password");
}
else
{
Intent intent=new Intent(MainActivity.this,Scan_QRActivity.class);
startActivity(intent);
}
}
});
使用TextUtils.isEmpty("Text here");
用于单线路码
使用此简短代码,您可以删除字符串开头和结尾的空白区域。如果字符串是“”,则返回消息“错误”,否则您将拥有一个字符串
EditText user = findViewById(R.id.user);
userString = user.getText().toString().trim();
if (userString.matches("")) {
Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show();
return;
}else{
Toast.makeText(this, "Ok", Toast.LENGTH_SHORT).show();
}
您可以使用setOnFocusChangeListener
,它将检查焦点何时更改
txt_membername.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
if (arg1) {
//do something
} else {
if (txt_membername.getText().toString().length() == 0) {
txt_membername
.setError("Member name is not empty, Plz!");
}
}
}
});
我更喜欢使用ButterKnife列表绑定,然后在列表上应用操作。例如,对于EditTexts,我在实用程序类中定义了以下自定义操作(在本例中为ButterKnifeActions
)
public static <V extends View> boolean checkAll(List<V> views, ButterKnifeActions.Check<V> checker) {
boolean hasProperty = true;
for (int i = 0; i < views.size(); i++) {
hasProperty = checker.checkViewProperty(views.get(i), i) && hasProperty;
}
return hasProperty;
}
public static <V extends View> boolean checkAny(List<V> views, ButterKnifeActions.Check<V> checker) {
boolean hasProperty = false;
for (int i = 0; i < views.size(); i++) {
hasProperty = checker.checkViewProperty(views.get(i), i) || hasProperty;
}
return hasProperty;
}
public interface Check<V extends View> {
boolean checkViewProperty(V view, int index);
}
public static final ButterKnifeActions.Check<EditText> EMPTY = new Check<EditText>() {
@Override
public boolean checkViewProperty(EditText view, int index) {
return TextUtils.isEmpty(view.getText());
}
};
在视图代码中,我将EditTexts绑定到列表,并在需要检查视图时应用操作。
@Bind({R.id.edit1, R.id.edit2, R.id.edit3, R.id.edit4, R.id.edit5}) List<EditView> edits;
...
if (ButterKnifeActions.checkAny(edits, ButterKnifeActions.EMPTY)) {
Toast.makeText(getContext(), "Please fill in all fields", Toast.LENGTH_SHORT).show();
}
当然,这种模式可以扩展到检查任意数量的视图上的任何属性。如果可以这样称呼,那么唯一的缺点就是视图的冗余。就是说,要使用这些EditText,还必须将它们绑定到单个变量,以便可以按名称引用它们,或者必须按列表中的位置引用引用(edits.get(0)
等)。就我个人而言,我只将它们分别绑定两次,一次绑定到单个变量,一次绑定到列表,并使用适当的方式。
试试看:它在科特林
//button from xml
button.setOnClickListener{
val new=addText.text.toString()//addText is an EditText
if(new=isNotEmpty())
{
//do something
}
else{
new.setError("Enter some msg")
//or
Toast.makeText(applicationContext, "Enter some message ", Toast.LENGTH_SHORT).show()
}
}
谢谢
下列陈述对我都有效:
if(searchText.getText().toString().equals(""))
Log.d("MY_LOG", "Empty");
首先,我从中检索文本EditText
,然后将其转换为字符串,最后与""
using .equals
方法进行比较。
私人无效checkempForm(){
EditText[] allFields = { field1_txt, field2_txt, field3_txt, field4_txt};
List<EditText> ErrorFields =new ArrayList<EditText>();//empty Edit text arraylist
for(EditText edit : allFields){
if(TextUtils.isEmpty(edit.getText())){
// EditText was empty
ErrorFields.add(edit);//add empty Edittext only in this ArayList
for(int i = 0; i < ErrorFields.size(); i++)
{
EditText currentField = ErrorFields.get(i);
currentField.setError("this field required");
currentField.requestFocus();
}
}
}