Java EditText为空且该方法始终返回true?
知道为什么下面发布的方法Java EditText为空且该方法始终返回true?,java,android,android-edittext,Java,Android,Android Edittext,知道为什么下面发布的方法isTopicExist()总是返回true 在下面的代码中,我通过调用方法isTopicExist来检查EditText是否有文本,但是在运行时,我没有输入任何文本并按下按钮,我希望在else语句中看到toast,但是toast从不显示,并且if(isTopicExist()&&(getSelectedRB()!=-1))始终为true 我错过了什么 代码 @Override public void onClick(View v) {
isTopicExist()
总是返回true
在下面的代码中,我通过调用方法isTopicExist
来检查EditText
是否有文本,但是在运行时,我没有输入任何文本并按下按钮,我希望在else
语句中看到toast
,但是toast
从不显示,并且if(isTopicExist()&&(getSelectedRB()!=-1))
始终为true
我错过了什么
代码
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (isTopicExist() && (getSelectedRB() != -1)) {
Log.d(TAG, "Topic: "+et_topic.getText().toString());
Log.d(TAG, "QoS_Level: "+getSelectedRB());
subscription_topic = et_topic.getText().toString();
subscription_QoS = getSelectedRB();
}else {
Toast.makeText(getActivity(), "Topic is a mandatory field", Toast.LENGTH_LONG).show();
}
}
private boolean isTopicExist() {
// TODO Auto-generated method stub
if (et_topic.getText().equals(""))
return false;
return true;
}
});
将您的
if
语句更改如下:
if (et_topic.getText().toString().trim().equals(""))
EditText#getText()
返回一个可编辑的
对象,该对象不等于“
”更改if
语句,如下所示:
if (et_topic.getText().toString().trim().equals(""))
EditText#getText()
返回一个可编辑的
对象,该对象不等于“
”,请尝试以下操作:
private boolean isTopicExist()
{
// TODO Auto-generated method stub
if (et_topic.getText().toString().trim().equalsIgnoreCase(""))
return false;
return true;
}
});
试试这个:
private boolean isTopicExist()
{
// TODO Auto-generated method stub
if (et_topic.getText().toString().trim().equalsIgnoreCase(""))
return false;
return true;
}
});
是否有任何内置方法来检测字段是否为空(无字符和数字)?因为用户可能不会将edittext留空,但他可能会输入一个空格,在这种情况下空格!0=“”,测试将通过
字符串#trim()
方法将删除任何空格,如果您不想计算。我编辑了我的答案以添加空格,但我想指出@Ludger在我之前就有这个答案。是否有任何内置方法来检测字段是否为空(没有字符和数字)?因为用户可能不会将edittext留空,但他可能会输入一个空格,在本例中为空格!0=“”,测试将通过String#trim()
方法将删除任何空格,如果您不想计算的话。我编辑了我的答案以添加空格,但我想指出@Ludger在我之前就有这个答案。出于好奇,有什么理由忽略空字符串上的大小写吗?我一直在问忽略大小写:)在我的特殊情况下,我使用equalsIgnoreCase()比较字符串和等于比较两个对象,例如两个类。出于好奇,有没有理由忽略空字符串上的大小写?我一直在问忽略大小写:)在我的特殊情况下,我使用equalsIgnoreCase()比较字符串和等于比较两个对象,例如两个类。