【问题标题】:Need to check if Shared Preferences String or Boolean exist需要检查是否存在 Shared Preferences String 或 Boolean
【发布时间】:2011-09-04 13:22:07
【问题描述】:

我想知道是否有人可以帮助我,我试图了解共享偏好,我假设它们存储在设备(平板电脑)中并且可以检查它们是否存在。 我下面的代码(第一个)我想要一个按钮,一旦单击,就可以在共享首选项中放置一个字符串或布尔值。 第二个代码是查看共享首选项是否存在,如果它确实进行了 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

【问题讨论】:

  • 您的问题是什么?您既没有说明您的问题是什么,也没有说明您提供的代码是否有效。在这里帮助我们...
  • 另外,代码不完整,以else结尾

标签: android sharedpreferences


【解决方案1】:

当你忽略返回值时,我不明白你为什么打电话给sharedpreferences.contains("cal1")SharedPreferences 的 Android 文档说明如下:

contains(String key) 检查首选项是否包含 偏好。

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

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

上面代码的格式也有点乱 - 使它更难阅读;)

【讨论】:

  • 要问你的问题 HXcaine 我的代码不起作用,因为第二个代码只会显示 settext weither 字符串是否存在。我留下了不完整的代码,因为我想知道是否可以在点击监听器中放置一些 if else 例程。
  • 由于 if 子句后的分号,您的代码始终设置文本。因此无论 if 评估如何,cexist1.setText("Shared prefs exit"); 块总是被执行
  • 感谢 k-mera,但不幸的是,即使我没有在点击侦听器上点击 cala1 上的按钮,我仍然会在 setext 更改时获得共享首选项退出(我的意思是存在 msspelling)。我需要一些代码来查看字符串是否已放入,否则返回 false 值。
  • 不错的一年...我只是在找那个。
猜你喜欢
  • 1970-01-01
  • 2012-08-18
  • 1970-01-01
  • 2019-02-11
  • 1970-01-01
  • 1970-01-01
  • 2011-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多