我想在沒有PreferenceActivity的情況下打開ListPreference。但是,當我使用的ActionBar福爾摩斯和沒有時間編寫自定義的ListView作爲ListPreferences我決定用此主題的治標不治本的工作: How to open or simulate a click on an android Preference, created with XML, programmatically?當PreferenceActivity啓動時打開ListPreference
我有PreferenceActivity:
public class PrefsActivity extends SherlockPreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
PreferenceScreen preferenceScreen = getPreferenceScreen();
int pos = findPreference("timeZone").getOrder();
preferenceScreen.onItemClick(null, null, pos, 0);
}
}
和首選項。 xml:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:key="mainPreferences" >
<ListPreference
android:defaultValue="Default"
android:entries="@array/prefs_time_zones_names"
android:entryValues="@array/prefs_time_zones_values"
android:key="timeZone"
android:summary="@string/prefs_time_zones_summary"
android:title="@string/prefs_time_zones_title" />
(...)
(...)
</PreferenceScreen>
當我啓動PrefsActivity時,我的ListPreference(帶有「timeZone」鍵)出現並正常工作。當列表打開時旋轉手機時出現問題。旋轉後,第二個列表被創建。所以當我從列表中選擇一個項目並且列表消失時,第二個仍然存在(選擇原始項目)。 如何避免旋轉時創建第二個列表?
不是「不是最好的」,那是最糟糕的解決方案。 – AppiDevo
@AppiDevo:那你告訴哪個是最好的解決方案 – Namy