在我的 Android 项目中,我已经创建了一个自定义对话框:一个名为SelectColorDialog
extends的类Dialog
,它允许用户查看一个大的颜色单元矩阵,以便选择一种特定的颜色。对话框通过回调函数将选定的颜色值(as Integer
)返回给对话框发起者——通常是一个活动。
我有一个类似的自定义对话框,SelectTypefaceDialog
可以轻松选择字体。可用字体列表以ListView
行的形式显示,每个都由名称标识,并带有以该字体呈现的相关简短示例文本。可用的字体包括常用的 droid 字体,例如 NORMAL、MONOSPACE 等,以及用户希望加载到 SDCard 上特定子目录中的任何外部来源的 TTF 字体文件。
这些自定义对话框最初并未设计为直接与 SharedPreferences、首选项定义 XML 文件或任何 PreferenceActivity 一起使用。取而代之的是,每个对话框都可以通过用户按下按钮或菜单项从任何活动中弹出。创建这些对话框的活动类也有内部回调类,选择事件侦听器,以检测用户何时选择颜色或字体。
这两个对话框没有确定和取消按钮。相反,用户只需单击对话框中的某个项目 - 某种视图 - 以选择相应的颜色或字体值(隐式确定),或者按下设备的后退按钮以关闭对话框而不采取任何操作(隐式取消) .
我现在想更进一步,通过 apreferences.XML
和关联的PreferenceActivity
.
如果可能的话,我宁愿DialogPreference
直接在这些现有对话框上建立两个子类,但我不知道该怎么做。我怀疑我做不到,我需要重新开始,并将当前在自定义对话框类中的所有 java 代码(用于颜色或字体显示和选择)直接复制或改编到自定义DialogPreference
类中,也许通过覆盖onCreateDialogView()
和/或其他方法?