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

如何自定义AlertDialog的默认按钮?[重复]

长孙绍辉
2023-03-14

问题是,我有一个警报对话框,在这个对话框中,我通过以下方式为自定义布局充气:

AlertDialog.Builder mBuilder = new AlertDialog.Builder(getActivity());
View mView  = getLayoutInflater().inflate(R.layout.exp_add, null);
mBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) { 
                         //some of my data and mView manipulation
                    });


mBuilder.setView(mView);
AlertDialog dialog = mBuilder.create();
dialog.show();

问题是如何自定义。setPositiveButton,因为我有一个具有特定背景颜色的视图,但mBuilder添加了一个具有默认白色背景颜色和粉红色文本按钮的按钮。

有什么方法可以自定义这个按钮吗?


共有1个答案

陈淳
2023-03-14
AlertDialog.Builder builder = new AlertDialog.Builder(context);
    LayoutInflater inflater = context.getLayoutInflater();

    //setting custom view for our dialog
    View myview = inflater.inflate(R.layout.YOUR_CUSTOM_LAYOUT, null);
    builder.setNeutralButton(android.R.string.cancel, null);
    builder.setView(myview);

    //creating an alert dialog from our builder.
    AlertDialog dialog = builder.create();
    dialog.show();

    //retrieving the button view in order to handle it.
    Button neutral_button = dialog.getButton(DialogInterface.BUTTON_NEUTRAL);

    Button positive_button = dialog.getButton(DialogInterface.BUTTON_POSITIVE);


    if (neutral_button != null) {
        neutral_button.setBackgroundDrawable(context.getResources()
                        .getDrawable(R.drawable.custom_background));

        neutral_button.setTextColor(context.getResources()
                        .getColor(android.R.color.white));
    }
    if (positive_button != null) {
        positive_button.setBackgroundDrawable(context.getResources()
                        .getDrawable(R.drawable.custom_background));

        positive_button.setTextColor(context.getResources()
                        .getColor(android.R.color.white));
    }
 类似资料:
  • 本文向大家介绍如何自定义radio按钮的样式相关面试题,主要包含被问及如何自定义radio按钮的样式时的应答技巧和注意事项,需要的朋友参考一下 选择器 input[type=“radio”] 现在几乎不用原生的radio,一是原生样式改成设计稿的样子太浪费时间,二是不同浏览器对于原生radio的展示还不一样。 基于状态驱动的思想,用自定义按钮或其他元素来替代radio,很容易实现,也能保证浏览器兼

  • > 标高,同时具有自定义可绘制。 在用户触摸的地方启动涟漪效果。

  • 问题内容: 如果提交表单但未通过任何特定按钮提交,例如 通过按 在JS中使用 浏览器应如何确定按下多个提交按钮(如果有)中的哪个? 这在两个层面上都很重要: 调用附加到提交按钮的事件处理程序 数据发送回Web服务器 到目前为止,我的实验表明: 按下时,Firefox,Opera和Safari使用表单中的第一个提交按钮 按下时,IE会使用第一个“提交”按钮,或者根本不使用任何按钮,这取决于我无法弄清

  • 当我在JAX-RS中添加字符串的默认值时,它不接受该值。它保持为null或空。 当我将状态传递为空或或未定义时,它将保持为空或或未定义。它不会将默认值视为已确认。

  • 问题内容: 我想在UITextField上创建自定义清除按钮,即使用rightView并将图像放在此处,问题是将原始的清除按钮事件附加到该自定义rightView上。 在Objective-C中,我可以这样做: 现在如何将其转换为Swift?或任何解决方法? 问题答案: 您可以将自定义按钮添加为类似这样的右视图