【问题标题】:How to customize default buttons of AlertDialog? [duplicate]如何自定义 AlertDialog 的默认按钮? [复制]
【发布时间】:2018-03-12 06:31:37
【问题描述】:

问题是,我有一个AlertDialog,我在其中通过以下方式扩展了我的自定义布局:

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 添加了一个具有默认白色背景颜色的按钮和一个粉红色文本按钮。

有没有办法自定义这个按钮?

【问题讨论】:

    标签: android android-alertdialog android-dialog


    【解决方案1】:
    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));
        }
    

    【讨论】:

    • 我觉得DialogInterface.BUTTON_NEUTRAL一定是DialogInterface.BUTTON_NEGATIVE
    猜你喜欢
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 2023-04-11
    • 1970-01-01
    相关资源
    最近更新 更多