【问题标题】:AlertDialog not showing items with Material Component ThemeAlertDialog 未显示具有材料组件主题的项目
【发布时间】:2019-12-06 00:43:03
【问题描述】:

如何在 AlertDialog 中显示项目。仅显示警报对话框而不显示任何项目我正在尝试以下代码,但这似乎不起作用:

CharSequence[] choices = {"Choice1", "Choice2", "Choice3"};

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context)
.setTitle(context.getString(R.string.title))
.setPositiveButton(context.getString(R.string.Ok), null)
                            .setNeutralButton(context.getString(R.string.Cancel), null)
.setSingleChoiceItems(choices, 1, null);

AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();

我正在使用材质组件样式:

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">

【问题讨论】:

  • 对不起,实际上我正在运行另一个对话活动!

标签: android material-design android-alertdialog material-components-android material-components


【解决方案1】:

我也遇到了同样的问题。然后在尝试了很多解决方案后,我才知道 remove setMessage() 在 MaterialAlertDialogBu​​ilder 中对我有用

【讨论】:

  • setMessage() 有同样的问题
【解决方案2】:
  String[] listItems = getResources().getStringArray(R.array.shopping_item);

  AlertDialog.Builder mBuilder = new AlertDialog.Builder(context);
            mBuilder.setTitle("Choose an item");
            mBuilder.setSingleChoiceItems(listItems, -1, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    mResult.setText(listItems[i]);
                    dialogInterface.dismiss();
                }
            });

            AlertDialog mDialog = mBuilder.create();
            mDialog.show();



 <string-array name="shopping_item">
    <item>Onion</item>
    <item>Sausage</item>
    <item>Milk</item>
    <item>Garlic</item>
    <item>Beef</item>
    <item>Veggies</item>
    <item>Olive</item>
    <item>Cheese</item>
    <item>Tuna</item>
    <item>Mushrooms</item>
</string-array>

【讨论】:

  • @AndroidDev 编码愉快!!
【解决方案3】:

由于您使用的是 Material Component Theme,您可以使用 MaterialAlertDialogBuilder

      CharSequence[] choices = {"Choice1", "Choice2", "Choice3"};
      new MaterialAlertDialogBuilder(MainActivity.this)
          .setTitle("Single Choice Dialog")
          .setPositiveButton("Ok", null)
          .setNeutralButton("Cancel", null)
          .setSingleChoiceItems(choices, 1, null)
          .show();

【讨论】:

    【解决方案4】:

    可能是因为您使用的是charsequence,将其更改为string[]

    String[] choices = {"Choice1", "Choice2", "Choice3"};
    

    【讨论】:

    • @android-dev 可以发截图吗
    猜你喜欢
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    相关资源
    最近更新 更多