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);
}
通过以上步骤,就可以在设置界面中显示一个可选择的列表,并在选择完成后处理选择的值。