当前位置: 首页 > 知识库问答 >
问题:

更改对话框按钮颜色

柳胡媚
2023-03-14
private void removeItem(final int position) {
    /** Create dialog which ask if user is sure about delete name from list **/
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Delete player");
    builder.setIcon(R.mipmap.ic_launcher);
    builder.setMessage("Do you want to delete player: \"" + mNameList.get(position).getText1() + "\"?")
            .setCancelable(false)

            /** If user click "ok" button, delete player from list and save changes **/
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    mNameList.remove(position);
                    mAdapter.notifyItemRemoved(position);
                    saveData();
                }
            })

            /** If user click "cancel" button, name won't delete from list **/
            .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    dialogInterface.dismiss();
                }
            });

    /** Create Dialog **/
    AlertDialog alert = builder.create();
    alert.show();
}

共有1个答案

姬自强
2023-03-14

您可以使用Material Components库提供的MaterialAlertDialogBuilder,它允许创建MaterialAlertDialog

只需使用:

   new MaterialAlertDialogBuilder(MainActivity.this,
       R.style.MyThemeOverlay_MaterialComponents_MaterialAlertDialog)
              .setTitle("Dialog")
              .setMessage("Lorem ipsum dolor ....")
              .setPositiveButton("Ok", /* listener = */ null)
              .setNegativeButton("Cancel", /* listener = */ null)
              .show();

然后使用ButtonBarpositiveButtonStyleButtonBarnegativeButtonStyle属性定义自定义样式:

  <!-- Alert Dialog -->
  <style name="MyThemeOverlay.MaterialComponents.MaterialAlertDialog" parent="@style/ThemeOverlay.MaterialComponents.MaterialAlertDialog">
     <item name="buttonBarPositiveButtonStyle">@style/PositiveButtonStyle</item>
     <item name="buttonBarNegativeButtonStyle">@style/NegativeButtonStyle</item>
     <item name="buttonBarNeutralButtonStyle">....</item>
  </style>


  <style name="PositiveButtonStyle" parent="@style/Widget.MaterialComponents.Button.TextButton.Dialog">
    <item name="android:textColor">#FFFFFF</item>
    <item name="backgroundTint">#00f</item>
  </style>

  <style name="NegativeButtonStyle" parent="@style/Widget.MaterialComponents.Button.TextButton.Dialog">
    <item name="android:textColor">@color/colorAccent</item>
    <item name="backgroundTint">@color/secondaryColor</item>
  </style>
 类似资料:
  • 我想改变颜色,想要一个更好的设计。。对此可以做些什么

  • 这里是我的创建对话框代码, 是否可以用蓝色而不是红色显示Disclose?

  • ListPreferenceHey我正在使用PreferenceActivity,并使用ListPreferency添加了单选按钮。问题是listPreference使用了自己的对话框,其中有蓝色单选按钮(Lollipop上为绿色),我需要将其更改为橙色。我设法得到对话框,并使用以下命令更改标题和分隔线颜色: 那么如果标题id是“android:id/alertTitle”,divder id是“

  • 我的应用程序中有许多警报对话框。这是一个默认的布局,但我添加了积极和消极按钮的对话框。因此,按钮将获得Android 5的默认文本颜色(绿色)。我试图改变它,但没有成功。你知道怎么改变文字颜色吗? 我的自定义对话框: 创建对话框:

  • 我正在创建一个警报对话框,上面有两个多选项,我想更改复选框的颜色以更好地适应我的应用程序的主题。这是一张照片: 您可以看到多选项项的默认绿色,而我的EditText具有正确的重音颜色。下面是我创建对话框的代码: 这是我设置布局的XML文件(order\u drink\u dialog.XML): 我在网上进行了广泛的搜索,我所能找到的只是人们使用类似和这样的替代方案,但没有一个提供我想要的外观或适

  • 在更改屏幕之前,我试图向用户显示带有对话框的成功消息。我希望它等待用户单击ok按钮或按Enter键,然后更改屏幕。由于我必须在程序中放置大量对话框,为了避免重复,我尝试在MainClass中使用一个createDialog方法来创建对话框,并将其添加到我传递给该方法的阶段。但问题是,我希望它将屏幕更改为用户按下ok按钮后传递给它的屏幕,但dialog的结果函数是一个内部方法,它不访问我传递给函数的