java - 警报对话框中的首选项 Activity

标签 java android android-alertdialog android-preferences preferencescreen

我可以在警告对话框中膨胀 PreferenceScreen 吗?

这是我试过的:

final LayoutInflater factory = LayoutInflater.from(this);
final View myDialog = factory.inflate(R.xml.prefScr, null);
final Dialog dialog = new AlertDialog.Builder(this)
    .setTitle("This is Dialog")
    .setView(myDialog)
    .create();

这给了我异常(exception):

android.view.InflateException: Binary XML file line #2: Error inflating class PreferenceScreen

最佳答案

我认为不可能像这样在 PreferenceActivity 之外使用 PreferenceScreen...但这里有一些替代方案:

1) 通过在 Manifest 中使用样式,使 Activity 显示为对话框:

<activity
    android:name=".MyPrefsActivity"
    android:label=""
    android:theme="@android:style/Theme.Dialog">
</activity>

2) 像现在一样使用AlertDialog,但使用您自己的自定义布局来扩充它,该布局具有与PreferenceScreen 相同的功能。然后,您将不得不手动管理首选项的获取和设置。

3) 只需将 PreferenceActivity 与它自己的 PreferenceDialog 一起使用。这可能不是您真正想要的东西,但使用 PreferenceActivity 将为您节省大量手动处理所有首选项的工作。

关于java - 警报对话框中的首选项 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9395721/

相关文章:

Java 没有使用链表正确地为我的变量赋值

android - RenderScript 绑定(bind)指针与分配

android - cordova 虚拟机初始化期间发生错误

安卓工作室 2.0 : Gradle DSL method not found: 'classpath()' error(27, 0)

java - 启动 Activity 并通过 DialogFragment 传递输入

java - Android:NullPointerException,这里什么可能为空?

java - 在 GraphQL (Apollo) 中转换 InputType 对象

java - 新手使用 run(),但找不到答案。 (小程序)

android - listView 中的自定义 alertDialog

java - Android AlertDialog 将按钮对齐到底部不起作用