都市のリストがあり、ユーザーがこれらの都市の 1 つを選択して設定に追加できるようにしたいと考えています。それを行うには、CityActivity (1 つの都市を表す) に移動し、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);
}