我的应用包含共享偏好,因此在我的"设置 - 菜单"我可以从列表中选择一个项目。
在另一个java文件中,我想访问所选项目的值。
我通过intent 传递整数值失败,因为整数是在private static,private boolean中声明的,并且Android Studio告诉我,无法从静态内容中引用
那么如何从这个整数中接收我的值呢?提前致谢:)。
编辑: firstival,非常感谢那么多答案!但由于我对java的关注度不高,所以我无法按照您的指示行事,因此我会更接近地描述我的问题。
我正在使用机器人模板"设置 - 活动"。在我的strings.xml中,我有
<string name="Values">Values</string>
<string-array name="pref_example_list_titles">
<item>A</item>
<item>B</item>
<item>C</item>
</string-array>
<string-array name="pref_example_list_values">
<item>01</item>
<item>02</item>
<item>03</item>
</string-array>
在我的SettingsActivity.java
中private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object value) {
String stringValue = value.toString();
if (preference instanceof ListPreference) {
ListPreference listPreference = (ListPreference) preference;
int index = listPreference.findIndexOfValue(stringValue);
preference.setSummary(
index >= 0
? listPreference.getEntries()[index]
: null);
{...}
在另一个java文件中,片段&#34; FirstFragment.java我最终想要将 pref_example_list_values 中的值赋给一个新的整数,称为&#34; Vallue2&#34;。
那么请你解释一下,我是怎么做到的,所以我无法解释你的解释。非常感谢!
答案 0 :(得分:0)
SharedPreferences对象指向包含键值对的文件,并提供读取和写入它们的简单方法。
这意味着单个文件保存该值,并且读取和写入它的优先方式如下:
SharedPreferences preference = yourContext.getSharedPreferences(yourFileName), Context.MODE_PRIVATE
);
preference.edit().putString(AN_IDENTIFIER, "aValue").apply();
然后检索值:
SharedPreferences preference = yourContext.getSharedPreferences(yourFileName), Context.MODE_PRIVATE
);
preference.getString(AN_IDENTIFIER,"a default value to use");