封装dialog_Android 用 Dialog 轻松实现单选菜单

移动应用的交互中常常会用到单选菜单,单选菜单的实现方式也有很多种,比如『WeChat』中就可以见到多种样式的单选菜单:

上面这两种样式,我没有去了解它的实际代码,单从交互来看,我猜应该是使用了 PopupWindowBottomSheetDialog

除了这两种方式,我们还可以使用更加简单的 Dialog 来实现。

Dialog 来做的话,很容易就想到了『Android 自定义 Dialog 布局』中引入自定义布局的方式,然后使用 RadioButton 或其他控件来做单选。

这种方式当然可以,但我们有更加简单的实现方式:

public static void showMenuDialog(Context context, String[] options) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setItems(options, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            // Do Something...
        }
    }).show();
}

AlertDialog.Builder 提供了 setItems() 方法来创建简单的列表对话框,从传入的字符串数组中获取各选项的名字,同时还需要传入响应事件,使用时我们可以根据数组的索引来绑定对应选项的点击事件。

当然,为了封装复用,我们应该将响应事件的逻辑交由函数的上层调用者来实现,所以可以封装成:

public static void showMenuDialog(Context context, String[] options, DialogInterface.OnClickListener listener) { 
    new AlertDialog.Builder(context)
            .setItems(options, listener)
            .show();
}

效果如下:

c949c1d547ce84f3ac20870ae07837b4.gif

18d32cd3d2da4364bb23939ad58a898a.png

e2423271a3ca77080e8b9b2e679e4092.png 051f13f0d84bf3e986973215f9fedd1f.png

Like it or not
I am here

a43fc50fbdb908ed8534164afb9f0599.png 150799214a6599d42cb26e643aa33e9a.png

6e8204f9d7c14933ad48ed434f66ac44.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值