首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对话背景

对话背景
EN

Stack Overflow用户
提问于 2017-10-22 16:26:52
回答 2查看 34关注 0票数 0

好的,我正在为手机制作一个应用程序。我为我的对话框创建了一个函数,并在需要时调用该函数。

我希望能够更改对话框窗口,即:不同的颜色、线条和其他东西,以便将文本分开。

我在网上到处寻找,找不到任何可以帮助我的东西。

这是我要调用的函数..。

代码语言:javascript
复制
public void userNameRequired(View view)
{
    AlertDialog.Builder builder = new AlerdDialog.Builder(this);
    TextView newMessage = new TextView(this);
    newMessage.setText(" User Name is Required to be between 7 and 20    caracters long.");
    newMesage.setGravity(Gravity.CENTER_HORIZONTAL);
    builder.setView(newMessage);

    TextView title = new TextView(this);
    title.setText("!! NOTICE !!");
    title.setGravity(Gravity.CENTER);
    title.setTextSize(28);
    title.setTextColor(Color.RED);

    builder.setCustomTitle(title);

    builder.setPositiveButton("Ok", new DialogInterface.OnClickListener()
    {
        public void onClick(DialogInterface dialog, int id)
        {

        }
    });

    builder.show();
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-22 16:31:05

正如pha所回答的,您可以将一个自定义主题分配给Alert Dialog:

How to change theme for AlertDialog

票数 0
EN

Stack Overflow用户

发布于 2017-10-22 16:35:52

解决方案1:

  1. 开放colors.xml
  2. 定义如下颜色:<color name="background_dark">#3F51B5</color>
  3. 在您的对话框中调用show()之后,设置如下背景颜色: builder.getWindow().setBackgroundDrawableResource(android.R.color.background_dark);

解决方案2:

  1. 定义自定义主题 //假设您在@color/White@color/colorPrimaryDark中定义了colors.xml @color/White粗体、真正的普通颜色/彩色colorPrimaryDark
  2. 设置styleAlertDialog.Builder builder =新AlerdDialog.Builder(新ContextThemeWrapper(this,R.style.AlertDialogCustom));

因此,您的代码应该是这样的:

代码语言:javascript
复制
    public void userNameRequired(View view)
    {
       AlertDialog.Builder builder = new AlerdDialog.Builder(new ContextThemeWrapper(this, R.style.AlertDialogCustom));
       TextView newMessage = new TextView(this);
       newMessage.setText(" User Name is Required to be between 7 and 20    caracters long.");
       newMesage.setGravity(Gravity.CENTER_HORIZONTAL);
       builder.setView(newMessage);

       TextView title = new TextView(this);
       title.setText("!! NOTICE !!");
       title.setGravity(Gravity.CENTER);
       title.setTextSize(28);
       title.setTextColor(Color.RED);

       builder.setCustomTitle(title);

       builder.setPositiveButton("Ok", new DialogInterface.OnClickListener()
       {
           public void onClick(DialogInterface dialog, int id)
           {

           }
       });

       builder.show();
    }

AlertDialog alertDialog = new AlertDialog.Builder(getContext(), R.style.MyDialogTheme)
        ...
        .create();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46876483

复制
相关文章

相似问题

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