我有一个城市列表,我希望用户可以选择其中一个城市将其添加到偏好中。为此,他继续 CityActivity(代表一个城市),打开 OptionMenu 并选择“添加到收藏夹”。所有城市都有一个名称、一个 ID 和其他在这里不感兴趣的字段。
如果用户将一个城市添加到其收藏夹中(通过 optionsMenu =>“添加到收藏夹”),我希望在 PreferenceCategory“收藏夹”中出现一个复选框(已在我的 PreferenceScreen 中创建,但默认为空)。如果复选框被选中,我将应用特定的处理(这不是问题)。
最后,如果用户再次进入该城市并选择“从收藏夹中删除”,则具有该城市名称的 checkBoxPreference 必须消失......
我在 SO 上搜索了很长时间,但从未找到确切的解决方案……或者我不明白。
我目前的来源:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:key="appSettings"
android:title="Préférences" >
<PreferenceCategory android:title="Accueil" >
<ListPreference
android:defaultValue="6"
android:entries="@array/nbNewsTitles"
android:entryValues="@array/nbNewsValues"
android:key="nbNews"
android:summary="Définit le nombre de news à afficher sur l'onglet d'accueil"
android:title="Nombre de news" />
</PreferenceCategory>
<PreferenceCategory android:title="Modèles" >
<ListPreference
android:entries="@array/quickTitles"
android:entryValues="@array/quickValues"
android:key="navigationRapide"
android:summary="Définit le nombre d'échéances à sauter lors de la navigation rapide"
android:title="Navigation rapide" />
</PreferenceCategory>
<PreferenceCategory android:title="Général" >
<CheckBoxPreference
android:defaultValue="false"
android:enabled="true"
android:key="doubleTapMenu"
android:summary="Affiche le menu lors d'actions spécifiques sur l'écran."
android:title="Magic Menu" />
</PreferenceCategory>
<PreferenceCategory
android:key="favoris"
android:title="Prévisions par villes" >
</PreferenceCategory>
public class SettingsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}