开发的时候,通常我们要自定义AlertDialog来满足我们的功能需求:
比如弹出对话框中可以输入信息,或者要展示且有选择功能的列表,或者要实现特定的UI风格等。那么我们可以通过以下方式来实现。
方法一:完全自定义AlertDialog的layout.如我们要实现有输入框的AlertDialog布局custom_dialog.xml:
原来在代码中使用:
这样,我们就可以弹出一个我们自定义的Dialog。这种方式有个弊端就是:
如果项目中有多个UI不同的AlertDialog,我们要写多个布局页面,当然可以提取通用布局,然后各种处理。
方法2:通过修改 Android 系统原生的 AlertDialog 中的控件来达到我们想要的效果。深入学习参考:http://blog.csdn.net/jxxfzgy/article/details/43956427
比如我们要实现特定风格的对话框,我们可以写个公共的方法,通过修改 Android 系统原生的 AlertDialog 中的控件来达到我们想要的效果,简单代码如下:
代码中用到的各种颜色,背景图片等根据需求自己定义。用到的dp与px转换代码如下:
这样我们就统一定义好了AlertDialog的整个界风格,在使用的时候,只需要根据UI需求定义内容部分的UI即可。
还是上面可以输入的AlertDialog,我们的布局就可以只写成下面这个,当然,外面层的LinearLayout也是可以去掉的。
然后在代码中使用:
这种方式 就比第一种方式方便 多了。当然要实现AlertDialog的背景透明等效果,我们还可以在res/value/style.xml内增加以下代码: