首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AlertDialog的Leanback版本

AlertDialog的Leanback版本
EN

Stack Overflow用户
提问于 2018-01-31 15:56:06
回答 3查看 2.8K关注 0票数 6

在安卓系统中,用AlertDialog按钮制作Positive/Negative是很容易的。

代码语言:javascript
复制
new AlertDialog.Builder(getActivity())
           .setTitle("Question?")
           .setPositiveButton("YES", new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialog, int which) {
                   // User chose YES
               }
           })
           .setNegativeButton("NO", new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialogInterface, int i) {
                   // User chose NO
                }
           }).create().show();

我想在我的电视应用程序中做出相应的选择。(问用户一个问题,得到是/否的答复)

我发现了两件事,这两件事都解决不了我的用例:

  1. ErrorFragment (关闭,但只有一个按钮)
  2. GuidedStepFragment (允许多个选项,但需要创建一个单独的活动,我必须编写自己的代码才能将所选的选项传递回第一个活动)

我觉得我错过了什么。在一个普通的Android应用程序中,这仅仅是几行代码。

我尝试在我的电视应用程序中使用AlertDialog,但是它引发了一个错误,就是在应用程序中设置了不正确的Theme。另外,我不认为这些对话框是可访问性友好的。

EN

回答 3

Stack Overflow用户

发布于 2018-01-31 19:09:24

似乎可以通过向AlertDialog调用添加一个主题来实现这一点:

代码语言:javascript
复制
new AlertDialog.Builder(getActivity(), R.style.Theme_AppCompat)
   ....
票数 9
EN

Stack Overflow用户

发布于 2022-08-02 20:29:05

如果您只想在不抛出错误的情况下显示AlertDialog,那么可以使用主题构造AlertDialog.Builder,我更喜欢使用AlertDialog.THEME_DEVICE_DEFAULT_DARK

代码语言:javascript
复制
new AlertDialog.Builder(getActivity(), AlertDialog.THEME_DEVICE_DEFAULT_DARK)
       .setTitle("Question?")
       .setPositiveButton("YES", new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialog, int which) {
               // User chose YES
           }
       })
       .setNegativeButton("NO", new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialogInterface, int i) {
               // User chose NO
            }
       }).create().show();

我帮不了你,如果你想要构建一个看起来像ErrorFragmentGuidedStepFragmentGuidedStepFragment

编辑:

在API 23中不推荐使用AlertDialog.THEME_DEVICE_DEFAULT_DARK,因此您可以使用android.R.style.Theme_DeviceDefault_Dialog_Alert,如下所示:

代码语言:javascript
复制
new AlertDialog.Builder(getActivity(), android.R.style.Theme_DeviceDefault_Dialog_Alert)
       .setTitle("Question?")
       .setPositiveButton("YES", new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialog, int which) {
               // User chose YES
           }
       })
       .setNegativeButton("NO", new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialogInterface, int i) {
               // User chose NO
            }
       }).create().show();
票数 1
EN

Stack Overflow用户

发布于 2022-09-27 10:45:18

或者,您可以使用一个名为TvDialog的类,它使用GuidedStepFragment创建如下所示的内容:

你可以看到它,这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48546282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档