我尝试创建登录身份验证,并且当用户输入错误密码3次时。 用户名和密码的texbox将被禁用,我将用户输入与我在SQL数据库中存储的用户名和密码进行比较,以验证用户的用户名和密码,我该怎么做?
答案 0 :(得分:0)
将EditText设置为只读: 从create方法存储对文本框(EditText)的引用,并在需要时调用.setEditable(false)以停用它们。也许您还会在其上调用setText(“”)来清除用户输入的值。
答案 1 :(得分:0)
你应该使用一个保持计数次数的变量。然后,当wrongGuesses等于3时:
editText.setFocusable(false)
或
editText.setEditable(false) // Note that this is deprecated but replacement (inputType) has bug
答案 2 :(得分:0)
Google提出了一个相关问题,影响旧版Android和一些随机新设备。
一个有效的,可重用的,有效的修复方法如下(假设它位于Activity
内):
private Static OnClickListener listener;
@Override
public void onCreate(...){
...
listener = new OnClickListener(){ ... };
}
public void disableEditText(EditText t){
t.setOnClickListener(null);
}
public void enableEditText(EditText t){
t.setOnClickListener(listener);
}
setenabled(false)无法正常工作的问题报告: http://code.google.com/p/android/issues/detail?id=2771
答案 3 :(得分:0)
您应该在SharedPreferences上存储尝试次数。一旦这个值达到3,就行了
editText.setEnabled(false);
您还应该检查onCreate或onResume中此数字的值,这样当用户杀死应用程序并重新启动时,EditText仍将被禁用。
另一方面,您可能希望了解一下是否更好的想法只是禁用“确定/登录”按钮(我假设您也有这个按钮)而不是EditText。