禁用文本框如果用户输入错误密码3次

时间:2012-03-06 01:32:56

标签: android

我尝试创建登录身份验证,并且当用户输入错误密码3次时。 用户名和密码的texbox将被禁用,我将用户输入与我在SQL数据库中存储的用户名和密码进行比较,以验证用户的用户名和密码,我该怎么做?

4 个答案:

答案 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。