问题标签 [dialog-preference]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
511 浏览

android - 方向更改后自定义 DialogPreference 消失

首先,对不起我的英语。

我正在尝试在我的偏好屏幕上制作一个自定义的“日期选择器”对话框。我从 Android 开发者网站和 Stackoverflow 获得了代码。

该对话框运行良好,它保存并加载值(布局包含 NumberPicker 和 TextView)。问题是:对话框在设备旋转时消失。

我在这个论坛和其他网站上阅读了几篇文章,但没有运气。你能帮助我吗 ?到目前为止,我已经花了几个小时来寻找问题,但我不知道如何解决它。谢谢。

编码:

}

0 投票
1 回答
567 浏览

android - 扩展 EditTextPreference 并显示 DialogMessage

我已扩展 EditTextPreference,但不会显示对话框消息。如果我以编程方式或在preferences.xml 中添加dialogMessage,就会发生这种情况。

这是我的onBindDialogView:

0 投票
3 回答
7544 浏览

java - Alertdialog.Builder setview:调用需要 API 级别 21

我试图让一个半径 NumberPicker 在扩展 DialogPreference 的类中运行,并且我在让 setView() 工作时遇到了很多麻烦。让我们从一些代码开始:

这给了我一个关于 builder.setView 的错误,说“调用需要 API 21(当前最小值为 15)。” 我想支持具有 API 15+ 的设备,因此无法更改此选项。现在,如果我尝试覆盖

protected void onPrepareDialogBuilder(android.support.v7.app.AlertDialog.Builder builder)

相反,它说“方法不会覆盖其超类中的方法”。

问题是,如何设置视图?它不一定必须在 onPrepareDialogBu​​ilder() 中,只要它支持 API 15+。谢谢!

PS:如果您需要更多代码,请告诉我。要将其显示在 XML 中,只需将其添加到<PreferenceScreen>

0 投票
1 回答
129 浏览

android - 在设置屏幕上显示 sharedPreference 对话框变量

我知道这是一件简单的事情,但我找不到正确的方法。据我所知,我可能设计错了。

我有一个 PreferenceFragment ,用户可以使用我的应用程序主片段上的选项菜单导航到它。(我的应用程序只有 1 个活动和 3 个片段。)此 PreferenceFragment 是设置屏幕,只有 1 个选项。单击该选项会向用户显示一个带有 TimePicker 的对话框。我使用 DialogPreference 来显示 TimePicker 对话框。当用户选择时间时,我想在设置屏幕中显示所选时间。

下面的代码以及屏幕截图。

显示设置屏幕的 PreferenceFragment 类。

显示 TimePicker 的 TimePreference 类

我在代码中提到的行上得到以下异常:

场景:我单击设置屏幕上的选项-> DialogPreference (TimePicker) 对话框打开--> 设置时间--> 好的-->一切正常--> 重复该过程--> 单击设置屏幕上的选项- -> DialogPreference (TimePicker) 对话框打开--> 设置时间--> 出现上述异常时崩溃!!!

我认为它尝试在上下文中调用 getString() 并且由于 getActivity 返回 null 它会引发异常,但是我如何设置用户在 SettingsFragment 字段的 TimePicker 中选择的值?

这几天一直困扰着我。有人可以指导我吗?

0 投票
0 回答
86 浏览

android - 将 alertDialog 构建器用于preferenceDialog

我正在尝试使用要以编程方式填写的多选列表进行自定义首选项。我尝试创建自定义 DialogPreference 如下所示,并使用 AlertDialog 构建器创建我的对话框。问题是拼凑不同的教程,我正在实现/覆盖需要返回视图的 onCreateDialogView()。我不确定是否可以让 AlertDialog.Builder 返回视图。

关于如何解决此问题的任何想法或建议是将构建器作为视图返回,或者以编程方式创建对话框的不同方式将不胜感激。

这是我试图结合的两个教程: 编写新 DialogPreference 类的简洁方式?Android:在 AlertDialog 内的多选 ListView 中选择项目

0 投票
0 回答
678 浏览

android - onCreateView 只为 DialogPreference 中的 Fragment 调用一次

我有一个 Fragment 覆盖该public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)方法而无需像这样调用 super :

此片段用于活动和自定义DialogPreference实现中。该片段包含在活动的布局文件和带有<fragment>标签的首选项中,并且android:id在两者中都有一个属性(尽管活动布局和首选项布局的 id 不同)。

自定义 DialogPreference 在 PreferenceFragment 中使用,一切都按预期工作。当我单击 PreferenceScreen 中的自定义 Preference 时,将调用 onCreateView 方法,并且正确显示包含我的 Fragment 的 DialogFragment。当我按回时,对话框关闭并再次显示 PreferenceScreen。在下一次单击时,再次调用 onCreateView 并且一切正常。

现在我正在尝试向这个 Fragment 添加一个“RetainedFragment”来存储一些状态,如此所述。为了实现这一点,我在我的片段中覆盖了 onCreate,如下所示:

这非常适合 Activity 案例,但是现在,当我尝试连续两次打开 DialogPreference 时,应用程序崩溃

我设置了一些断点,问题似乎是onCreateView我的片段的方法只有在打开PreferenceScreen后第一次点击我的DialogPreference时才被调用。当我在两者之间关闭 PreferenceScreen 时,它也可以正常工作。

值得注意的是,异常发生在初始 Fragment,而不是新的“RetainedFragment”。

0 投票
1 回答
449 浏览

android - 未使用自定义 DialogPreference 和 bindPreferenceSummaryToValue 设置默认值

我制作了一个自定义 DialogPreference 以在我的设置中有一个搜索栏对话框,使用bindPreferenceSummaryToValue默认设置活动提供的方法将其摘要绑定到其值。(见下文)一切正常,但是当第一个设置中的设置时,它没有设置为默认值,而是设置为 0,因为 0 在 bindPreferenceSummaryToValue 中设置为后备值。

在我的自定义 DialogPreference 中,我有以下方法:

当然在 prefs.xml 我有:

这在 MainActivity 中:

我猜当 value 为 null 时使用后备值,但如果我将其设置为默认值,为什么它会为 null?

0 投票
1 回答
623 浏览

java - NumberPicker 的格式化值在单击时消失

My NumberPicker 处于setDescendantFocusability(FOCUS_BLOCK_DESCENDANTS)模式并且setWrapSelectorWheel(false)已关闭。

我用一个简单的格式化程序格式化了我的 Numberpicker:

示例输出:4 周,其中 4 是值。

NumberPicker 位于对话框中,短按该值后,“周”消失,“4”保留。现在,在长时间单击后,格式化的文本会重新出现。

现在有人如何解决这个问题吗?

0 投票
1 回答
244 浏览

android - Appcompatactivity 与包含 TimePicker 的自定义本机(不兼容)对话框首选项

我正在 Android 中构建首选项/设置屏幕AppCompatActivity。一个要求是[DialogPreference][1]带有TimePicker.

DialogPreference 必须是“本机”,这意味着不是此处此处描述的兼容版本。

AppCompatActivity 的代码:

activity_preferences.xml 的布局:

SettingsFragment 类:

首选项.xml 文件:

和自定义 TimePreference 类:

options_timepicker_dialog.xml 文件如下:

结果就像下面的屏幕截图。在装有 Android 7 的 Moto G5 plus 手机上。

截屏

问题: 应该有两个偏好。但是,自定义 DialogPreference 未显示在设置列表中。这里出了什么问题?AppCompatActivity 是否真的与“本机”DialogPreference 一起使用?

TimePreference 类实际上是从首选项 xml 中实例化的,可以从构造函数中记录下来。也没有编译时错误,没有运行时错误。

0 投票
1 回答
3581 浏览

android - DialogPreference 导致错误 onDisplayPreferenceDialog()

我想创建一个简单的(是/否)对话框首选项,我按照这篇文章中的答案 -从 XML 创建一个 DialogPreference

但我得到一个错误说

我的 XML

还有我的 JAVA 代码

我究竟做错了什么 ?