android多个dialog层级,android dialog根据弹窗等级排序显示的示例代码

背景:由于主界面可能弹窗很多弹窗,需求要求某个dialog必须在前面显示,如果再消失监听中,线性判断,每个dialog都去判断工作量巨大,且不易阅读。所以做了一个弹窗排序的项目。这里只是讲解单个activity中的弹窗排序,demo中还有维护多个activity 弹窗排序,详细看最下面github

做到工具组件化,不侵入原项目代码,无需继承,使用方便。

原理:当有一个dialog添加显示时,判断等级是否大于,大于则显示,否则则添加到等待队列

private void show(int level, Dialog dialog, DialogInterface.OnDismissListener onDismissListener){

if(dialog == null){

return;

}

DialogLevelModel topDialog = getTopShowingDialog();

DialogLevelModel inModel = new DialogLevelModel(level, dialog, activity);

new DismissListenerBinder(inModel,this,onDismissListener).bind();

if(topDialog ==null || level >= topDialog.level){

realShow(inModel);

}else {

waitList.sortAdd(new DialogLevelModel(level, dialog, activit

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以按照以下步骤自定义一个: 1. 在Activity中重写onCreateDialog()方法,返回一个Dialog对象。 2. 在Dialog对象的构造函数中设置的样式、布局和监听事件。 3. 在Activity中调用showDialog()方法显示。 以下是示例代码: ```java public class MainActivity extends AppCompatActivity { private static final int DIALOG_CUSTOM = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 显示自定义 showDialog(DIALOG_CUSTOM); } @Override protected Dialog onCreateDialog(int id) { switch (id) { case DIALOG_CUSTOM: // 创建自定义 Dialog dialog = new Dialog(this); dialog.setContentView(R.layout.dialog_custom); dialog.setTitle("自定义"); // 设置按钮的监听事件 Button btnOk = dialog.findViewById(R.id.btn_ok); btnOk.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 处理确定按钮的点击事件 Toast.makeText(MainActivity.this, "点击了确定按钮", Toast.LENGTH_SHORT).show(); dismissDialog(DIALOG_CUSTOM); } }); Button btnCancel = dialog.findViewById(R.id.btn_cancel); btnCancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 处理取消按钮的点击事件 Toast.makeText(MainActivity.this, "点击了取消按钮", Toast.LENGTH_SHORT).show(); dismissDialog(DIALOG_CUSTOM); } }); return dialog; } return super.onCreateDialog(id); } } ``` 在上面的代码中,我们创建了一个自定义,并设置了确定和取消按钮的点击事件。在Activity的onCreate()方法中,调用showDialog()方法显示。当用户点击按钮时,会被关闭。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值