我正在寻找一种选择多个值的替代方法。我以前使用过ListPreference,并且从某些论坛和Stackoverflow听说,MultiSelectListPreference是此类作业的最佳方法。
现在,我了解到MultiSelectListPreference很难将值保存为默认值。我启动了android应用并选择了一些项目,但是如果返回主屏幕或停止应用,它不会保存我选择的值。
那是我的SettingActivity。
public class SettingsActivity extends AppCompatActivity {
MultiSelectListPreference multiSelectListPreference = new MultiSelectListPreference(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
}
}
那是我的带有特定信息的xml文件。
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<MultiSelectListPreference
android:title="@string/mark_title_anime"
android:summary="@string/mark_summary_anime"
android:entries="@array/anime"
android:entryValues="@array/anime_values" />
</PreferenceScreen>
那是我的@string文件。
<resources>
<string name="app_name">Anime 4 You</string>
<string name="pref_title_show_notifications">Show Notifications</string>
<string name="mark_title_anime">Anime</string>
<string name="mark_summary_anime">Select your Favourite Anime</string>
</resources>
最后一个实际上是我保存自己的价值的地方。 @array
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="anime">
<item>Bleach</item>
<item>Naruto</item>
<item>One Piece</item>
</string-array>
<string-array name="anime_values">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
</resources>
我希望你们能帮助我。抱歉,我发布了太多代码。我真的不知道问题出在哪里。
最好的问候
Theeninfam