【问题标题】:Android - Initialize variable with currently set preferenceAndroid - 使用当前设置的首选项初始化变量
【发布时间】:2018-01-12 22:08:36
【问题描述】:

private int mShuffleMode = SharedPreferences.getInt("shufflemode");

告诉我不能从静态上下文中引用非静态方法。

我不完全确定这意味着什么。

我正在尝试使用之前设置的首选项初始化变量。

【问题讨论】:

    标签: java android open-source


    【解决方案1】:

    getInt() 不是您在 SharedPreferences 上调用的方法。相反,您在SharedPreferencesinstance 上调用它。

    我正在尝试使用之前设置的首选项初始化变量。

    检索您的SharedPreferences 对象,然后调用getInt()。如果您有保存SharedPreferences 的代码,您应该已经可以访问该SharedPreferences 对象,或者至少有用于检索它的代码。

    请参阅the documentation on SharedPreferences 了解更多信息。

    【讨论】:

    • 啊!我现在明白了。非常感谢您的回答!一旦我有 15 个代表,我一定会给你的回复一个赞成票。这很有帮助
    【解决方案2】:

    您无法使用SharedPreferences.getInt("shufflemode");以静态方式获取数据

    您需要做的是创建一个SharedPreference 的对象,然后使用SharedPreference sharedPreference = context.getSharedPreferences("name-of-preference",MODE) 查询它,然后使用`sharedPreference.getInt("shufflemode")

    考虑一下link

    【讨论】:

      【解决方案3】:
      private SharedPreferences sharedPref ;
      private int mShuffleMode;
      

      在你的onCreate

      sharedPref= context.getSharedPreferences("preferences_file_key", Context.MODE_PRIVATE);
      mShuffleMode = sharedPref.getInt("shufflemode");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-27
        • 2015-07-04
        • 1970-01-01
        • 1970-01-01
        • 2021-08-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多