我有一個城市列表,我希望用戶可以選擇其中一個城市將其添加到偏好設置中。要做到這一點,他繼續CityActivity(代表一個城市),打開OptionMenu並選擇「添加到最愛」。所有的城市都有一個名字,一個ID和其他字段在這裏沒有意思。如果用戶將一個城市添加到其收藏夾(通過optionsMenu =>「添加到收藏夾」),我希望複選框出現在PreferenceCategory「收藏夾」(已在我的PreferenceScreen中創建,但默認爲空)。如果複選框被選中,我將應用特定的處理(這不是問題)。動態添加或刪除CheckBoxPreferences(Android)
最後,如果用戶去城市再次,選擇「從收藏夾刪除」,我搜索了很久的SO,但從來沒有擁有這個城市必須消失的名稱checkBoxPreference ...
發現這個問題的解決方案......或者我不明白。
我的電流源:
<?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);
}
好的。我知道這些方法將CheckBoxPreference添加到我的PreferenceCategory中,但我不知道如何在CityActivity(這是完全獨立的)中將一個城市添加到最喜歡的城市時調用它。這些方法在我的PreferenceActivity中,而方法addToFavorite在「CityActivity」中......也許我很笨,但我不知道該怎麼做... – QLag
那麼如果你想堅持一個偏好活動(我認爲一個列表視圖「可能」更適用),您將需要將您的城市信息存儲到某種商店,共享偏好等。當您初始化PreferenceActivity時,會在運行時創建您的複選框首選項,每個元素需要一個(從商店讀取),然後附加到PreferenceScreen然後附加到活動。 – Jug6ernaut
好的,謝謝,其實這很容易...對我感到羞恥:) – QLag