问题描述
|
在Android中如何搜索sharedpreference是否包含一些值?
实际上我正在制作一个将密码并确认密码作为字段的应用程序。当用户第一次启动应用程序时,他必须同时输入密码和确认密码。但是我想当用户重新启动该应用程序时,他必须要求仅输入密码。
为此,我将密码存储在sharedPreferences中,但是现在我如何知道密码已经存在于sharedPreferences中呢?
因此,如果他们在sharedPreferences中没有密码,那么我可以显示包含密码的活动,并确认要输入的密码;如果存在密码,那么我将显示仅包含密码的活动。
如果有人有主意,请帮助我。我从很多天开始努力,但仍然没有得到输出。
解决方法
用于保存数据...
SharedPreferences settings = getSharedPreferences(\"YourKey\",0);
SharedPreferences.Editor editor = settings.edit();
editor.putString(\"password\",passwordValue);
// Don\'t forget to commit your edits!!!
editor.commit();
用于检索...
SharedPreferences settings =this.getSharedPreferences(\"YourKey\",0);
String userData = settings.getString(\"password\",\"0\");
if((userData.equals(\"0\"))){
//password has not been saved...
}
else{
//password is already there...
}
,您可以在SharedPreferences
实例上使用contains
方法进行检查:
boolean hasPassword = preference.contains(\"passwordKey\");
API文件:
public abstract boolean contains (String key)
由于:API级别1
检查首选项是否包含首选项。
参量
key
要检查的首选项的名称。
退货
如果首选项中存在首选项,则返回true,否则返回false。
,首先检查是否设置了密码:
boolean password_exists = !settings.getString(\"password\",\"\").equals(\"\");
然后隐藏或显示第二个密码的字段
second_passwort_edittext.setVisibility(password_exists ? View.GONE:View.VISIBLE);
输入密码后,您可以使用password_exists更改行为(比较密码并将其设置为false,如果为true,则与给定的存储密码进行比较)
,我认为您可以通过从共享首选项中获取密码值来验证是否收到了某些东西
if(preferences.getInt(\"storedPass\",0) != null) {
//Do Stuff
}