2011-04-15 45 views
-1

在android中如何搜索那个sharedpreference包含一些值还是不是?在android中如何搜索那个sharedpreference包含一些值还是不是?

其实我正在开发以密码和确认密码为字段的应用程序。当用户第一次启动应用程序时,他必须同时输入密码和确认密码。但我想当用户重新启动该应用程序,他必须要求输入密码。

为此,我将密码存储在sharedPreferences中,但现在如何知道他们已经在sharedPreferences中存在密码?

因此,如果他们在sharedPreferences中没有密码,我可以显示包含密码和确认密码的活动,以输入AND如果存在密码,那么我将显示仅包含密码的活动。

如果任何人有想法,那么请帮助我。我从很多天开始,但仍然没有得到输出。

回答

2

保存数据...

SharedPreferences settings = getSharedPreferences("YourKey", 0); 
    SharedPreferences.Editor editor = settings.edit(); 
    editor.putString("password", passwordValue);   
    // Don't forget to commit your edits!!! 
    editor.commit(); 

检索...如果passwort设置

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... 
    } 
+0

我alredy做到了这一点得到密码值收到的东西并再次。为什么这是发生我不明白。请告诉我,谢谢 – Angel 2011-04-15 11:57:04

+0

是的,我很高兴我明白了。我得到它。谢谢你 – Angel 2011-04-15 12:27:47

0

拳头检查:

boolean password_exists = !settings.getString("password","").equals(""); 

然后隐藏或显示领域第二个密码

second_passwort_edittext.setVisibility(password_exists ? View.GONE:View.VISIBLE); 

输入密码后,你可以改变password_exists行为(比较密码,如果假设置它们,给定存储密码,如果真比较)

+0

我alredy做了与Umesh帖子相同的代码,但是当我运行它时,它只运行“如果”条件部分一次又一次。为什么这是发生我不明白。请告诉我,谢谢 – Angel 2011-04-15 11:59:13

+0

是的,我很高兴我得到它。我得到了它。谢谢你 – Angel 2011-04-15 12:28:32

8

您可以通过使用contains方法对你SharedPreferences实例检查:

boolean hasPassword = preference.contains("passwordKey"); 

API文档:

public abstract boolean contains (String key) 

从以下版本开始:API级别1
检查首选项是否包含首选项。

参数
key优先检查的名称。

返回如果偏好存在偏好
返回true,否则为false。

+0

我alredy做了与Umesh post相同的代码,但是当我运行它时,它只运行“如果”条件部分再次。为什么这是发生我不能理解。请告诉我,谢谢 – Angel 2011-04-15 11:58:15

+1

它必须是因为你没有用''密码''键来保存任何东西。您是否使用正确的共享偏好?你应该看看[这里](http://developer.android.com/reference/android/content/Context.html#MODE_PRIVATE)。如果你希望一个人能够一次从手机登录,那么你可以使用preference ='PreferenceManager.getDefaultSharedPreferences(getBaseContext());' – rekaszeru 2011-04-15 12:25:25

+0

是的,我很高兴我得到它。谢谢你 – Angel 2011-04-15 12:28:53

0

我想,但是当我运行它,它只能运行“如果”条件的一部分再次你可以只验证,如果你已经从你的共享偏好

if(preferences.getInt("storedPass", 0) != null) { 
    //Do Stuff 
} 
+0

我alredy做了相同的代码作为Umesh后在这里,但是当我运行它,它只运行“如果”条件部分一次又一次。为什么这是发生我不明白。请告诉我&谢谢 – Angel 2011-04-15 11:59:47

+0

是的,我是很开心,我明白了。我明白了。谢谢你 – Angel 2011-04-15 12:29:18

相关问题