ListPreference是Android開發中的一個控件,用于在設置界面中顯示一個可選擇的列表。以下是ListPreference的使用方法:
在res/xml文件夾中創建一個preference.xml文件(可以自定義文件名)。
在preference.xml文件中添加一個ListPreference控件。例如:
<ListPreference
android:key="list_preference"
android:title="Choose an item"
android:entries="@array/list_entries"
android:entryValues="@array/list_entry_values"
android:defaultValue="default_value"
android:dialogTitle="Choose an item"
/>
其中,android:key用于唯一標識該控件,android:title用于顯示在設置界面中的標題,android:entries用于顯示可選擇的列表項,android:entryValues用于關聯列表項的值,android:defaultValue用于設置默認選項,android:dialogTitle用于設置對話框標題。
在res/values文件夾中創建一個arrays.xml文件(可以自定義文件名)。
在arrays.xml文件中定義列表項的顯示文本和關聯值。例如:
<resources>
<string-array name="list_entries">
<item>Item 1</item>
<item>Item 2</item>
<item>Item 3</item>
</string-array>
<string-array name="list_entry_values">
<item>value1</item>
<item>value2</item>
<item>value3</item>
</string-array>
</resources>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit();
}
其中,MyPreferenceFragment是自定義的PreferenceFragment類。
public class MyPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference);
}
}
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
if(preference.getKey().equals("list_preference")) {
ListPreference listPreference = (ListPreference) preference;
String value = listPreference.getValue();
// 處理選擇的值
}
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
通過以上步驟,就可以在設置界面中顯示一個可選擇的列表,并在選擇完成后處理選擇的值。