尝试更改自定义对话框背景颜色

发布于 2025-02-13 04:16:08 字数 2245 浏览 0 评论 0原文

好的,所以我尝试将对话框的背景从白色更改为深蓝色。但是,当我长时间按一个网格元素时,对话框看起来像这样:

”

我正在尝试制作看起来像这样(这是一个photoshop):

”我希望它看起来像“

我的XML代码用于编辑对话框

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:padding="16dp"
android:background="@color/customBG">

Java代码用于自定义对话框

@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    LayoutInflater inflater = getActivity().getLayoutInflater();
    View view = inflater.inflate(R.layout.edit_game_dialog,null);

    editTitle = view.findViewById(R.id.editTitle);
    editTitle.setText(currentTitle);
    imageView = view.findViewById(R.id.item_image_dialog);
    imageView.setImageResource(currentImage);
    changeImageBt = view.findViewById(R.id.change_image);

    changeImageBt.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {

        }
    });

    builder.setView(view).setTitle("Edit game")
            .setPositiveButton("Apply Changes", new DialogInterface.OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialogInterface, int i)
                {
                    String title = editTitle.getText().toString();
                    int image = R.drawable.blank; //PLACE HOLDER CODE
                    editGameDialogListener.applyChanges(pos,title,image);
                }
            })
            .setNegativeButton("Cancel", new DialogInterface.OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialogInterface, int i)
                {

                }
            });

    return builder.create();
}

Ok so I am trying change my background of my dialog box from white to a dark blue. However when I long press on one of the grid elements the dialog box looks like this:

How it looks

I am trying to make it look something like this (this is a photoshop):

PhotoShop of how I want it to look like

Here is snipet of my XML code for the edit dialog

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:padding="16dp"
android:background="@color/customBG">

Java code for custom dialog

@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    LayoutInflater inflater = getActivity().getLayoutInflater();
    View view = inflater.inflate(R.layout.edit_game_dialog,null);

    editTitle = view.findViewById(R.id.editTitle);
    editTitle.setText(currentTitle);
    imageView = view.findViewById(R.id.item_image_dialog);
    imageView.setImageResource(currentImage);
    changeImageBt = view.findViewById(R.id.change_image);

    changeImageBt.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {

        }
    });

    builder.setView(view).setTitle("Edit game")
            .setPositiveButton("Apply Changes", new DialogInterface.OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialogInterface, int i)
                {
                    String title = editTitle.getText().toString();
                    int image = R.drawable.blank; //PLACE HOLDER CODE
                    editGameDialogListener.applyChanges(pos,title,image);
                }
            })
            .setNegativeButton("Cancel", new DialogInterface.OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialogInterface, int i)
                {

                }
            });

    return builder.create();
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浅唱々樱花落 2025-02-20 04:16:08

我认为您应该使用对话框而不是AlertDialog。
警报对话框具有自己的标题和按钮。

通过对话框,您将有好处定义标题和按钮。

根据您的设计需要创建一个布局,并将其设置在对话框中。

class ABC(context: Context) : Dialog(context) {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    setContentView(R.layout.your_custom_layout)
}
}

I think you should use Dialog instead of AlertDialog.
Alert Dialog has its own Title and Button.

With Dialog you will have the benefit of defining your Title and Buttons.

Create a Layout as your design needs and set it in Dialog.

class ABC(context: Context) : Dialog(context) {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    setContentView(R.layout.your_custom_layout)
}
}
月牙弯弯 2025-02-20 04:16:08

创建对话框时,您可以将主题作为第二个参数传递

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.MyDialogTheme);

,并设置自定义主题以覆盖所需的任何内容。对于背景颜色,类似的东西应该可以工作:

<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="android:background">@color/customBG</item>
</style>

When you create your dialog, you can pass theme as a second param

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.MyDialogTheme);

and set the custom theme to override anything you need. For background color something like this should work:

<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="android:background">@color/customBG</item>
</style>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文