我正在尝试在Android中实现,如果编辑文本字段为空,则禁用下一个活动按钮的方法,例如用户名和密码登录界面。
到目前为止,这是我的代码,即崩溃提交按钮。 它可能很简单但我今天似乎无法看到它。欢迎任何帮助,谢谢
{{1}}
以下是错误的logcat:
{{1}}
答案 0 :(得分:1)
尝试将 if condition 更改为:
if (passwordSave.getText().toString().equals("")) {
}
<强>更新强>:
检查 edittext 是否为空的其他方法:
if (TextUtils.isEmpty(passwordSave.getText().toString().trim())) {
Snackbar snackbar = Snackbar
.make(view, "Please fill in your password", Snackbar.LENGTH_LONG)
.setAction("Close", new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
snackbar.setActionTextColor(Color.RED);
View sbView = snackbar.getView();
TextView textView = (TextView) sbView.findViewById(android.support.design.R.id.snackbar_text);
textView.setTextColor(Color.WHITE);
snackbar.show();
return;
} else {
Intent addEntryIntent = new Intent(this, homePage.class);
startActivity(addEntryIntent);
finish();
}
答案 1 :(得分:0)
如果您仔细阅读了堆栈跟踪,则会注意到您已收到NullPointerException
。
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Object.equals(java.lang.Object)' on a null object reference
这意味着您passwordSave
的作业已返回null
。确保您已正确地在XML文件中提供了EditText
该ID,并且您已正确拼写所有内容。
最重要的是你的if条件问题。
if (passwordSave.equals("")) {
passwordSave
是对EditText
的引用,而不是用户输入的文本。正如@Bruno Ferreira在回答中所说,你必须将条件改为
if (passwordSave.getText().toString().equals("")) {
答案 2 :(得分:0)
您在“submitPassword”方法中将EditText对象与String进行比较。 这是你的错误:
if (passwordSave.equals(""))
从editText获取字符串: passwordSave.getText()。的toString()