问题标签 [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 回答
629 浏览

android - 我应该使用 Dialog 还是 DialogPreference 来制作专门的首选项对话框?

我正在尝试在我的应用程序中进行自定义设置,该设置PreferenceActivity最终Dialog将具有以下内容

  1. 指定EditText服务器
  2. AButton用于测试服务器连接
  3. Icon指定是否已到达服务器的响应

我在创建 custom 方面取得了一些进展Dialog,但我也遇到了DialogPreference似乎对此类功能有用的类。

我想知道我是否有任何理由开始尝试使用DialogPreference,或者我是否有理由继续玩弄一个简单的 custom Dialog

我会遇到任何问题吗?

0 投票
1 回答
954 浏览

android - 使用对话首选项从搜索栏保存浮动

我正在使用自定义对话框首选项在我的首选项菜单中生成搜索栏。在研究了 seekbar 的实现之后,为了从 seekbar 中获取我需要的浮点值,我编写了以下代码:

这会产生我想要的浮动。但是,我希望能够在我的主要活动中使用这个浮动。我尝试使用 SharedPreferences 存储它:

这就是我学会在扩展 Activity 的类中使用 SharedPreferences 的方式。

但是,由于此搜索栏扩展了对话首选项,我无法使用

getBaseContext()

当我收到该类型的方法 getBaseContext 未定义的错误时。

我曾尝试将 getBaseContext() 更改为 getContext() 但这并不成功,尽管这可能是因为我不熟悉此实现。

如何从对话首选项中保存此浮点数并在不同的类中使用该值?

我用来检索 SharedPreferences 的代码:

Mpm.class:包com.gbclimber.ep;

}

0 投票
1 回答
133 浏览

android - 首选项不保存使用复合 EditTextPreferences

我已按照本教程使用复合对话框首选项

所有东西都运行良好,唯一的问题是偏好没有为应用程序保存。可能是系统默认不保存首选项,所以有什么方法可以保存它们。

我已经实现callChangeListener()了保存首选项的方法:

0 投票
1 回答
1654 浏览

java - 如何从 PreferenceActivity 在 Preference 类中运行函数

我们可以在 PreferenceActivity 中设置的 Preference 类型只有这么多。单击某个首选项后,我将尝试运行特定功能。有没有办法覆盖preferenceScreen 或editText onClick?

0 投票
1 回答
2061 浏览

android - 为什么自定义 DialogPreference 不会在 onSharedPreferenceChanged 侦听器上触发?

我正在尝试在首选项中设置对话框首选项,用户只需单击肯定按钮即可触发某些操作。(清除数据库?否 | 是)

我实际上不想保留任何东西,只需触发 onSharedPreferenceChanged 侦听器,这样我就可以在活动中处理它。但我不知道如何触发它

//解决方案

0 投票
1 回答
2215 浏览

android - 如何为 DialogPreference 子类正确实现 onRestoreInstanceState()?

我正在实现我自己的自定义 DialogPreference 子类,它有一个用于持久化整数的 SeekBar。我对需要进入的内容onSaveInstanceState()onRestoreInstanceState(). 具体来说,您是否需要更新用户与之交互的 UI 小部件(在我的例子中是 SeekBar 小部件)onRestoreInstanceState()

我感到困惑的原因是这里的 API 文档文章告诉你这样做:

但是查看一些官方 Android Preference 类(EditTextPreferenceListPreference)的源代码,UI 小部件没有在onRestoreInstanceState(). 只有 Preference 的基础值是(在上面的示例中,这将是mNewValue)。

这是 EditTextPreference 的相关来源:

那么,共识是什么?我应该在哪里更新 UI 小部件(如果我应该更新它......)?

0 投票
2 回答
17372 浏览

android - 为什么屏幕旋转时片段不保留状态?

我在 PreferenceFragment 中获取一些自定义 DialogPreference 子类以在屏幕旋转时保持可见时遇到了一些麻烦。我在使用 PreferenceActivity 时没有遇到这个问题,所以我不知道这是 Android 错误还是我的代码有问题,但我希望有人确认他们是否有相同的体验。

为了测试这一点,首先创建一个包含至少一个 DialogPreference 的首选项屏幕(哪个子类都没有关系)。然后在 PreferenceActivity 中显示它。当您运行您的应用程序时,按下 DialogPreference 以显示它的对话框。然后旋转屏幕以改变方向。对话框是否仍然可见?

然后尝试相同的方法,但使用 PreferenceFragment 来显示您的偏好,而不是 PreferenceActivity。同样,当您旋转屏幕时对话框是否仍然可见?

到目前为止,我发现如果使用 PreferenceActivity,对话框将保持可见,但如果使用 PreferenceFragment,则不会。查看 DialogPreference的源代码,似乎正确的行为是让对话框保持可见,因为在屏幕重新定向上调用isDialogShowing时会保存状态信息。onSaveInstanceState()因此,我认为一个错误可能会阻止 PreferenceFragment(以及其中的所有内容)恢复该状态信息。

如果是 Android 的 bug,那么它的影响是深远的,因为任何使用 PreferenceFragment 的人都无法保存和恢复状态信息。

有人可以确认吗?如果它不是一个错误,那么发生了什么?

0 投票
1 回答
1908 浏览

android - 自定义 DialogPreference 中的 Android Spinner 在方向更改时强制关闭应用程序

我创建了一个自定义对话框首选项,它有两个微调器,以便选择特定的时间间隔(例如 2 秒或 2 分钟或 3 小时等)。因此,当我在首选项屏幕中单击我的自定义首选项时,自定义对话框首选项会弹出起来,它显示了两个微调器。但是,当我选择其中一个微调器(弹出另一个对话框 - 请参阅第二张图像)并且如果我更改屏幕的方向时,应用程序将被强制关闭。:S 这发生在 Android 2.3.6 Gingerbread 中。我已经用 android 4.1 进行了测试,它工作正常,但微调器不同,它不在对话框中,而是在组合框样式中。

我已将所有函数的代码放在 try catch 中,但我无法捕获异常。以下是错误:

有一个解决方案可以将 configchanges 更改为此:android:configChanges="orientation|keyboardHidden",但我想知道是否有另一种方法可以解决这个问题,因为我已经阅读了很多关于这个解决方法可能的问题有一些副作用。

我还尝试从 onDismiss 函数的布局中删除微调器,但我没有解决问题。:S 所以使用函数或不使用函数都不能解决问题。

这是自定义 DialogPreference 类:

0 投票
3 回答
4551 浏览

android - onUserInteraction 在 DialogPreference 中不起作用

预计onUserInteraction任何用户交互都会调用它。它在PreferenceActivity. 但是,当 aDialogPreference弹出时,onUserInteraction即使有触摸事件等用户交互,也不再调用。

这似乎 DialogPreference不是唯一的情况。无论何时Dialog显示,它都不会将用户交互报告给活动。

但是,如果我真的需要它,我该怎么办。谢谢你。

0 投票
1 回答
293 浏览

android - Android DialogPreference 中的上下文菜单...有可能吗?

我正在尝试在DialogPreferenceAndroid 应用程序中创建上下文菜单(如果相关,则针对 API 级别 8)。我已经设法ListView通过轻微的黑客攻击来显示菜单(当单击 a 中的项目时),但我不知道如何处理任何生成的命令。到目前为止,我所拥有的是:

  • 在我的onItemClick处理程序中,我执行以下操作:

    /li>
  • ContextMenuGenerator执行以下操作:

    /li>

这会导致在正确的时间显示正确的菜单,但我不知道选择一个项目后会发生什么。我认为是在创建时onContextItemSelected(MenuItem)调用的,但我不知道如何从那里获取我可以处理该事件的代码——我没有看到任何子类化的方式,似乎也没有办法将外部侦听器附加到它或. 还有其他我没有想到的方法吗?DialogDialogPreferenceDialogContextMenu