1

我正在PreferenceScreen为我的 Android 应用程序设置。我包括一个EditTextPreference指定远程服务器。现在我想为用户提供一个选项,将地址重置为弹出窗口内的初始值:

基本上我想要的是第三个按钮, 除了“CANCEL”“OK”之外的“RESET ”

在此处输入图像描述

我有什么简单的方法来实现这种定制吗?

完整性代码:

<PreferenceCategory android:title="General">

    <EditTextPreference
        android:defaultValue="http://stackoverflow.com/"
        android:dialogTitle="Specify the remote server: "
        android:inputType="textUri"
        android:key="serverAddress"
        android:maxLines="1"
        android:summary="somesSummaryText"
        android:title="Server Address"
        android:persistent="true" />

</PreferenceCategory>

4

2 回答 2

2

我认为没有办法这样做,EditTextPreference但你总是可以有一个简单Preference的,并在其 OnClick 中添加你的 AlertDialog ,并根据你的想法进行任何自定义。

<Preference
    android:key="pref_key_edit"
    android:summary="@string/pref_summary_edit"
    android:title="@string/pref_title_edit"/>

并覆盖onPreferenceTreeClick您的PreferenceActivityPreferenceFragment

@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
    switch (preference.getKey()) {
        case "pref_key_edit":
            // Do whatever you want here
            return true;
    }
    return super.onPreferenceTreeClick(preferenceScreen, preference);
}
于 2016-05-22T17:51:40.933 回答
0

好的,您可以为此使用首选项屏幕中的首选项。在 Preference 的 onPreferenceClickListener 上显示您的自定义对话框并从对话框中获取值并使用SharedPreference保存它们。

于 2016-05-22T17:43:51.283 回答