博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android笔记之自定义对话框
阅读量:6903 次
发布时间:2019-06-27

本文共 2466 字,大约阅读时间需要 8 分钟。

效果如下图

对话框布局

dialog_uninstallation_confirmation.xml

自定义的对话框类

UninstallationConfirmationDialog.java

package com.bu_ish.custom_dialog_example;import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.view.View;import android.view.Window;import android.view.WindowManager;import android.widget.ImageView;import android.widget.TextView;public abstract class UninstallationConfirmationDialog extends Dialog {    private ImageView iconImageView;    private TextView messageTextView;    private int iconResId;    private String message;    public abstract void onCancelClicked();    public abstract void onUninstallClicked();    public UninstallationConfirmationDialog(Context context) {        super(context, R.style.UninstallationConfirmationDialog);    }    public UninstallationConfirmationDialog setIcon(int resId) {        this.iconResId = resId;        return this;    }    public UninstallationConfirmationDialog setMessage(String message) {        this.message = message;        return this;    }    @Override    public void show() {        super.show();        Window window = getWindow();        WindowManager.LayoutParams layoutParams = window.getAttributes();        layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;        window.setAttributes(layoutParams);    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.dialog_uninstallation_confirmation);        iconImageView = findViewById(R.id.iconImageView);        messageTextView = findViewById(R.id.messageTextView);        iconImageView.setImageResource(iconResId);        messageTextView.setText(message);        findViewById(R.id.cancelTextView).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                onCancelClicked();                dismiss();            }        });        findViewById(R.id.uninstallTextView).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                onUninstallClicked();                dismiss();            }        });    }}

对话框style

P.S.

对话框默认风格是带标题的,通过windowNoTitle设置为无标题

为保证对话框宽度与屏幕匹配,须通过Window.setAttributes(WindowManager.LayoutParams)设置宽度

完整Demo链接:,提取码:qbwu

转载于:https://www.cnblogs.com/buyishi/p/10450556.html

你可能感兴趣的文章
实验四 恶意代码技术
查看>>
快速打出System.out.println("");
查看>>
kermit的安装、配置、使用
查看>>
shell编程学习
查看>>
忙中记录
查看>>
Js点餐加减数量
查看>>
【转】ACM训练计划
查看>>
Design Tic-Tac-Toe
查看>>
LeetCode 477: Total Hamming Distance
查看>>
win10安装MarkdownPad 2报错This view has crashed的处理及md简单语法
查看>>
Unity3D - 设计模式 - 工厂模式
查看>>
第二十六课:jQuery对事件对象的修复
查看>>
Leetcode题目:Swap Nodes in Pairs
查看>>
Windows聚焦转为图片
查看>>
POJ NOI0101-09 字符菱形
查看>>
jQuery--停止动画和判断是否处于动画状态stop()
查看>>
1-1 接口自动化测试框架从设计到开发
查看>>
MYSQL常用命令
查看>>
js 打开新页面 window.open()
查看>>
Intellij idea 一个窗口打开多模块并添加依赖
查看>>