【问题标题】:Android: SharedPreferences BooleanAndroid:SharedPreferences 布尔值
【发布时间】:2017-01-18 16:35:30
【问题描述】:

有人知道错误在哪里吗? Android Studio 出现错误。

以下是现在的代码。

final String keyFirstTime = "keyFirstTime";

prefsEditor.putBoolean(keyFirstTime, false);

if (keyFirstTime = false) {

提前致谢。

【问题讨论】:

  • 好吧,keyFirstTime 是一个String,所以你不能给它分配一个布尔值。并且if 语句中的表达式也需要是boolean(或Boolean)类型。
  • 请显示完整代码。
  • @BalkrishnaRawool 不,这仍然是编译器错误,因为字符串永远不会与布尔值相同。
  • @BalkrishnaRawool 我是说你的建议不正确:它只是用另一个编译器错误替换一个编译器错误。
  • prefs.getBoolean(keyFirstTime) = false 也有错误

标签: java android boolean sharedpreferences


【解决方案1】:
  1. keyFirstTime 是一个字符串(见注释)
  2. 你正在输入一个值,但没有得到一个值
  3. 您在 if 语句中使用了赋值
  4. 您正在将 STRING 与 BOOLEAN 进行比较

在活动 1 中,您应该:

final String keyFirstTime = "keyFirstTime";
prefsEditor.putBoolean(keyFirstTime, false);

在活动 2 中,您应该:

boolean firstTime = prefs.getBoolean(keyFirstTime, false); //you don't need the editor
if (firstTime) {
    ...
}

请到这里获取教程:https://developer.android.com/training/basics/data-storage/shared-preferences.html

编辑尝试这样做(从here窃取)

private static final String FIRST_RUN = "FIRST_RUN";
SharedPreferences prefs = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...

    prefs = getSharedPreferences(getApplicationContext().getPackageName(), MODE_PRIVATE);
}

@Override
protected void onResume() {
    super.onResume();

    if (prefs.getBoolean(FIRST_RUN, true)) {           
        prefs.edit().putBoolean(FIRST_RUN, false).commit();
        //call relevant function for first run
    } else {
        //call relevant function for every other run
    }
}

【讨论】:

  • 谢谢,但如果我希望 keyFirstTime 在开始时为真(用户第一次启动应用程序)并将值从真更改为假(如果单击按钮)
  • 您可以随时更改该值,只要您使用与 SharedPreferences 中的键相同的字符串
  • 如果它回答了您的问题,请将此标记为答案
【解决方案2】:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences();  prefs.edit().putBoolean("keyFirstTime", true).commit();

现在要获得你必须使用的布尔值

Boolean check = prefs.getBoolean("keyFirstTime", false);

现在你可以这样检查

if(check){ 你的代码在这里 }

【讨论】:

    猜你喜欢
    • 2017-04-08
    • 2011-04-13
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 2015-06-17
    相关资源
    最近更新 更多