2011-09-04 43 views
2

我想知道是否有人可以帮助我,我试图让我的头绕过共享偏好,我假设它们存储在设备(平板电脑)中,并且可以检查以查看它们存在。 我的代码如下(第一个)我想要一个按钮,一旦点击将一个字符串或布尔值在共享首选项。 第二个代码是看是否存在共享的首选项,如果它确实让的setText变化,如果不能忽视,并寻找下一个字符串需要检查共享首选项字符串或布尔值是否存在

cala1.setOnClickListener(new View.OnClickListener() { 
public void onClick(View v) { 
    LoadPreferences(); 
     SharedPreferences sharedpreferences = getSharedPreferences("prefman", MODE_PRIVATE);   
      SharedPreferences.Editor editor = sharedpreferences.edit(); 
      editor.putString("cal1","c1"); 
      editor.commit();    }); 


enter4.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
LoadPreferences(); 
       SharedPreferences sharedpreferences = getSharedPreferences("prefman", MODE_PRIVATE);   
      sharedpreferences.contains("cal1"); 

       if (sharedpreferences.getString("cal1","c1").equals("cal1")); 

       { 
        {cexist1.setText("Shared prefs exit"); 

       } 
else 
+1

什么是你的问题?你既没有说明你的问题是什么,也没有说明你提供的代码是否有效。帮助我们在这里... – HXCaine

+0

此外,代码是不完整的,它结束于其他 – HXCaine

回答

16

我不明白你为什么叫sharedpreferences.contains("cal1")当你忽略返回值无论如何。 Android的文档SharedPreferences说以下内容:

包含偏好(String键)检查是否包含 偏好。

看起来就是你想要的,试着用你在if中的调用子句。

if (sharedpreferences.contains("cal1")) { 
    cexist1.setText("Shared prefs exit"); 
} 

代码的格式上面是有点乱太 - 使得它难以阅读;)

+0

要问你的问题HXcaine我的代码没有工作,因为第二个代码只会显示字符串是否存在的settext。我留下的代码不完整,因为我不知道是否有可能在点击监听器中放置一些其他例程。 – robj

+0

由于if语句后面有分号,因此您的代码始终设置文本。 因此,'cexist1.setText(“共享首选项退出”);'块总是执行,无论如何评估 – kmera

+0

谢谢k-mera,但不幸的是我仍然得到共享前缀退出(我的意思是存在mssplelling)即使我没有在点击监听器上点击cala1上的按钮。我需要一些代码来查看该字符串是否被放入,否则返回false值。 – robj