Android studio 实现dialog对话框、半自定义弹窗使用

 

在这篇文章里主要和大家分享实现几个简单的dialog对话框。

实现不同的对话框,准备几个button控件,点击后实现不同的弹窗效果。

button控件的点击事件如何实现在这里就不做过多的赘述了。

一、普通对话框

1.1代码

普通的对话框存在一个title,一个message,可以有积极,消极,中性,三个按钮,三个按钮点击事件可以自己写。(如果不想要中性回答,不写就可以了)

1.2实现效果

二、列表对话框 

2.1代码

列表对话框还是很好理解的,点击后弹出一个对话框,里面是列表。先设置一个数组,再运用setItems方法,这边我写的是点击列表中哪个选项就Toast哪个。(当然,积极、消极、中性回答,你不想加也可以)

2.2实现效果 

三、单选列表对话框

3.1代码

和上面一样,需要准备一个数组,运用setSingleChoiceItems方法,方法中的-1表示默认那些单选列表没有选中(改成0就是默认选中第一个,改成1就是默认选中第二个,以此类推)。

.setCancelable(false)是实现了点击对话框外部,对话框不消失(不加这句话的话,默认就是点击外部对话框消失了)

3.2效果

四、多选对话框

4.1代码

也是一样,需要一个数组,并且需要再new一个boolean类型数组(全填false就表示默认都不选中,要默认选中哪个,哪个就填true就行)运用setMultiChoiceItems方法实现多选

4.2效果

五、半自定义对话框

有时候系统给的对话框满足不了需求,就可以实现一个半自定义的对话框,可以在对话框内实现你自己创建的布局文件xxx.xml

5.1代码

给大家看一下我放入的布局文件

然后实现dialog

先放入要实现的布局文件,然后初始化里面的控件,就可以实现重写点击事件

5.2效果

 

 

 

 

 

 

 

 

Android Studio自定义弹窗可以通过以下步骤实现: 1. 首先,在res/values/styles.xml文件中定义一个自定义对话框主题,可以使用如下代码: ``` <style name="CustomDialog" parent="android:style/Theme.Dialog"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:backgroundDimEnabled">true</item> </style> ``` 2. 然后,在res/layout文件夹中创建对话框布局文件,例如dialog_layout.xml。 3. 创建一个自定义对话框类,例如DialogView,继承自android.app.Dialog,并在构造函数中设置布局和主题,可以使用如下代码: ``` public class DialogView extends Dialog { public DialogView(@NonNull Context context, int layout, int style, int gravity) { super(context, style); setContentView(layout); Window mWindow = getWindow(); // 设置对话框宽度、高度和位置 // WindowManager.LayoutParams params = mWindow.getAttributes(); // params.width = WindowManager.LayoutParams.MATCH_PARENT; // params.height = WindowManager.LayoutParams.WRAP_CONTENT; // params.gravity = gravity; // mWindow.setAttributes(params); } } ``` 4. 最后,在使用自定义对话框的地方,创建DialogView实例并设置相应的参数。 此外,你还可以通过在res/drawable文件夹下创建XML文件来定义对话框的背景,例如bg_custom_dialog.xml,可以参考以下代码: ``` <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="10dp"/> <solid android:color="@color/white"/> </shape> ``` 这样就可以在Android Studio实现自定义弹窗了。123 #### 引用[.reference_title] - *1* *2* [Android开发-自定义弹框篇(一)](https://blog.csdn.net/x97666/article/details/130140885)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [androidstudio自定义Dialog](https://blog.csdn.net/m0_57458432/article/details/129636189)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这次终于凑到十个字了

感谢各位哥哥姐姐,弟弟妹妹

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值