java - Android:共享首选项 boolean 值

标签 java android boolean sharedpreferences

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

以下是目前的代码。

final String keyFirstTime = "keyFirstTime";

prefsEditor.putBoolean(keyFirstTime, false);

if (keyFirstTime = false) {

提前致谢。

最佳答案

  1. keyFirstTime 是一个字符串(参见注释)
  2. 您正在 PUTTING 一个值,但没有得到一个值
  3. 您正在 if 语句中使用赋值
  4. 您正在将 STRING 与 BOOLEAN 进行比较

在 Activity 1 中,您应该:

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

在 Activity 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
    }
}

关于java - Android:共享首选项 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41724686/

相关文章:

java - 创建带有状态的 GUI 组件

android - 如何检查 LocationManager.NETWORK_PROVIDER 是否可用?

android - 我可以在自己的模块中设置 Robolectric

java - 缓存的 Optional<Boolean> 值

java - java 将符号转换为位

java - return语句后执行的代码

java - 用java构建一个计算器(带开关)

java - 如何在我的 Activity 中显示带有说明的透明图像?

java - 使用默认 ObjectMapper 后 boolean JSON 参数为 false

Java:锁定线程时,AtomicBoolean 和静态 boolean 变量有什么区别?