我正在尝试从不同的活动中获取和设置 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");
在我的下一个活动中,我调用 read the value on launch 以查看哪个 listPreference 处于活动状态,并且它始终是我从上面列出的 mains 活动中写入的数字。问题是当我转到实际的 Preference 活动时,当我在 ListPreference 上更改它并从那里启动相同的活动时它不匹配或更新(它仍然读取我从 Main 活动按钮设置的值)
尝试读取 ListPreference 的活动的代码如下:
SharedPreferences settings = getSharedPreferences("PreferenceXML",
MODE_PRIVATE);
Toast.makeText(this, settings.getString("ListPreferenceInXML","1"), 1000).show();