android-从另一个活动获取并设置listPreference不起作用

我试图从不同的活动中获取并设置listPreference值,但它不起作用.

当我从主活动中读取和写入它时,它只会保留我编写的内容,因此我假设我不在活动中时未正确定向listPreference,因为它在我的首选项活动中正常工作.

我在开发人员网站上看到过一些使用getValue和getEntryValues引用CharSequence的信息,但我也没有运气让它们正常工作.

这是我的代码,用于单击按钮并设置listpreference值,然后启动切换活动的意图:

Main Activity,尝试将listpreference的值设置为第一个索引值;

        SharedPreferences settings = getSharedPreferences("PreferenceXML", 
                MODE_PRIVATE);
            SharedPreferences.Editor editor = settings.edit();

            editor.putString("ListPreferenceInXML", "1");
            editor.commit();

            String levelCheck = settings.getString("ListPreferenceInXML","1");

在下一个活动中,我调用启动时读取值,以查看哪个listPreference是活动的,并且始终是我从上面列出的mains活动中写入的数字.问题是当我转到实际的“首选项”活动时,当我在ListPreference上更改它并从那里启动相同的活动时,它不匹配或不更新(它仍然读取我从“主”活动按钮中设置的值)

尝试读取ListPreference的活动的代码如下:

    SharedPreferences settings = getSharedPreferences("PreferenceXML", 
                MODE_PRIVATE);

    Toast.makeText(this, settings.getString("ListPreferenceInXML","1"), 1000).show();

解决方法:

所以我终于弄清楚了,问题出在我称呼偏好的方式上.在两种情况下,都不必像这样调用首选项;

   SharedPreferences settings = getSharedPreferences("PreferenceXML", 
            MODE_PRIVATE);

像这样称呼他们:

   SharedPreferences settings = 
        PreferenceManager.getDefaultSharedPreferences(getBaseContext());

我不确定在调用首选项的第一种方法中是否缺少步骤,但是第二种方法像冠军一样工作.

上一篇:SpringBoot配置log4j日志(可用)


下一篇:log4j 使用介绍