Android 首选项,自定义 EditTextPreference
Android preferences, customize EditTextPreference
我正在为我的 Android 应用程序设置 PreferenceScreen
。
我包括了一个 EditTextPreference
来指定一个远程服务器。
现在我想为用户提供一个选项,将地址重置为弹出窗口中的初始值:
基本上我想要的是第三个按钮,"RESET"除了"CANCEL"和"OK"
有什么简单的方法可以实现这种定制吗?
完整性代码:
<PreferenceCategory android:title="General">
<EditTextPreference
android:defaultValue="http://whosebug.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>
好的,您可以在 首选项屏幕 中使用 首选项 。在 Preference 的 onPreferenceClickListener 上显示您的自定义对话框并从对话框中获取值并使用 SharedPreference.
保存它们
我认为使用 EditTextPreference
无法做到这一点,但您始终可以使用简单的 Preference
并在其 OnClick 中添加您的 AlertDialog 并根据您的想法进行自定义。
<Preference
android:key="pref_key_edit"
android:summary="@string/pref_summary_edit"
android:title="@string/pref_title_edit"/>
并覆盖 onPreferenceTreeClick
你的 PreferenceActivity
或 PreferenceFragment
@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);
}
我正在为我的 Android 应用程序设置 PreferenceScreen
。
我包括了一个 EditTextPreference
来指定一个远程服务器。
现在我想为用户提供一个选项,将地址重置为弹出窗口中的初始值:
基本上我想要的是第三个按钮,"RESET"除了"CANCEL"和"OK"
有什么简单的方法可以实现这种定制吗?
完整性代码:
<PreferenceCategory android:title="General">
<EditTextPreference
android:defaultValue="http://whosebug.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>
好的,您可以在 首选项屏幕 中使用 首选项 。在 Preference 的 onPreferenceClickListener 上显示您的自定义对话框并从对话框中获取值并使用 SharedPreference.
保存它们我认为使用 EditTextPreference
无法做到这一点,但您始终可以使用简单的 Preference
并在其 OnClick 中添加您的 AlertDialog 并根据您的想法进行自定义。
<Preference
android:key="pref_key_edit"
android:summary="@string/pref_summary_edit"
android:title="@string/pref_title_edit"/>
并覆盖 onPreferenceTreeClick
你的 PreferenceActivity
或 PreferenceFragment
@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);
}