DialogPreference完整实例
时间: 2023-11-12 09:03:08 浏览: 36
DialogPreference是Android中的一种Preference,用于显示一个对话框来允许用户编辑Preference值。以下是一个基本的DialogPreference实例:
1. 首先,在res/xml目录下创建一个my_preferences.xml文件,添加以下内容:
```
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="Dialog Preference Demo">
<EditTextPreference
android:key="edit_text_preference"
android:title="Edit Text Preference"
android:summary="Click to edit"
android:dialogTitle="Enter your name" />
<ListPreference
android:key="list_preference"
android:title="List Preference"
android:summary="Click to select"
android:entries="@array/options"
android:entryValues="@array/option_values"
android:dialogTitle="Select an option" />
<CheckBoxPreference
android:key="check_box_preference"
android:title="Checkbox Preference"
android:summary="Click to set"
android:dialogTitle="Set a value" />
<DialogPreference
android:key="dialog_preference"
android:title="Dialog Preference"
android:summary="Click to open"
android:dialogTitle="Dialog Title"
android:positiveButtonText="OK"
android:negativeButtonText="Cancel"
android:dialogIcon="@drawable/ic_launcher" />
</PreferenceCategory>
</PreferenceScreen>
```
2. 在res/values目录下创建一个arrays.xml文件,添加以下内容:
```
<resources>
<string-array name="options">
<item>Option 1</item>
<item>Option 2</item>
<item>Option 3</item>
</string-array>
<string-array name="option_values">
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
</resources>
```
3. 创建一个名为MyPreferenceFragment的类,继承自PreferenceFragment,添加以下内容:
```
public class MyPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.my_preferences);
}
}
```
4. 在您的活动中,添加以下代码来显示MyPreferenceFragment:
```
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getFragmentManager().beginTransaction()
.replace(R.id.content_frame, new MyPreferenceFragment())
.commit();
}
}
```
5. 运行应用程序并查看DialogPreference的效果。
注意:DialogPreference的行为可以通过重写它的onDialogClosed()方法来定制。在此方法中,您可以读取和修改Preference的值。