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

更改对话框多选项的颜色

江雅懿
2023-03-14

我正在创建一个警报对话框,上面有两个多选项,我想更改复选框的颜色以更好地适应我的应用程序的主题。这是一张照片:

您可以看到多选项项的默认绿色,而我的EditText具有正确的重音颜色。下面是我创建对话框的代码:

public class OrderDrinkDialogFragment extends DialogFragment
{
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState)
    {

        AlertDialog.Builder builder = new AlertDialog.Builder(DrinkDetailActivity.activity);

        //set dialog title
        builder.setTitle(R.string.dialog_title);

        builder.setView(R.layout.order_drink_dialog);

        //MultiChoice for double shot and mixed with soda
        builder.setMultiChoiceItems(R.array.dialog_checkboxes,null,
                new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which, boolean isChecked)
                    {

                    }
                });

        Dialog dialog = builder.create();

        dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;

        return dialog;
    }
}

这是我设置布局的XML文件(order\u drink\u dialog.XML):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <EditText
        android:id="@+id/username"
        android:inputType="text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/order_dialog_name_padding"
        android:layout_marginEnd="@dimen/order_dialog_name_padding"
        android:layout_marginBottom="@dimen/order_dialog_name_padding"
        android:hint="@string/dialog_name_hint"
        android:theme="@style/AppTheme"
        />
</LinearLayout>

我在网上进行了广泛的搜索,我所能找到的只是人们使用类似CheckBoxCheckedTextView这样的替代方案,但没有一个提供我想要的外观或适当的功能。我想要完全相同的文本框,但背景是我的应用程序的重音颜色,而不是默认的绿色。

共有1个答案

毛声
2023-03-14

将警报对话框主题设置为警报对话框的第二个参数。生成器构造函数。在我的模拟器(Nexus 5)上,下面的代码工作正常。

    public class OrderDrinkDialogFragment extends DialogFragment
    {
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState)
        {

            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this, R.style.MyAlertDialogTheme);

此外,还需要为主题添加强调色。

<style name="MyAlertDialogTheme" parent="@android:style/Theme.Material.Light.Dialog">
    <item name="colorAccent">#E91E63</item>
    <item name="android:colorAccent">#E91E63</item>
</style>
 类似资料:
  • ListPreferenceHey我正在使用PreferenceActivity,并使用ListPreferency添加了单选按钮。问题是listPreference使用了自己的对话框,其中有蓝色单选按钮(Lollipop上为绿色),我需要将其更改为橙色。我设法得到对话框,并使用以下命令更改标题和分隔线颜色: 那么如果标题id是“android:id/alertTitle”,divder id是“

  • 我有一个选择框,当选择框被单击并显示所有选项时,我正在尝试更改选项的背景颜色。

  • 我有一个弹出下载音频指令在我的应用程序。我正在尝试做的是,我想改变默认的文本颜色“OK”为蓝色。我试了一些东西,但不起作用。下面是我的代码: 但这种改变并没有反映出,有谁能告诉我,我做错了什么?

  • 是否可以更改Android5.0的datepicker(以及timepicker)配色方案? 我尝试过设置重音颜色,但这都不起作用(使用):

  • 问题内容: 我正在尝试将第一个选项的颜色更改为灰色,即只有文本(选择一个选项),但是在这里无法正常工作: 问题答案: Suresh,您不需要在代码中使用任何内容。您需要的是这样的东西: 但是正如您所看到的,因为选项中的第一项是选择控件显示的第一件事,所以您看不到其分配的颜色。如果您打开选择列表并看到已打开的项目,则会看到可以为第一个选项分配灰色。因此,您需要jQuery中的其他功能。