Android自定义AlertDialog实现单选操作

2025-05-21 22:40:05

1、新建一个Android项目Test,activity_main.xml文件添加两个按钮(系统自带Dialog,自定义的Dialog),比较两种方式的效果。<LinearLayout <Button android:id="@+id/btn_system" /> <Button android:id="@+id/btn_custom" /></LinearLayout>

Android自定义AlertDialog实现单选操作Android自定义AlertDialog实现单选操作Android自定义AlertDialog实现单选操作Android自定义AlertDialog实现单选操作Android自定义AlertDialog实现单选操作

6、custom_choice_dialog_layout.xml底部用到的背景文件bg_bottom_custom_dialog.xml:<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item><shape> <gradient android:angle="270" android:endColor="#e1e1e1" android:startColor="#e1e1e1" /> <corners android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" /> </shape> </item></selector>

Android自定义AlertDialog实现单选操作

8、自定义控件CustomChoiceDialog最主要的部分就是,中间单选ListView部分,看CustomChoiceDialog.java里的create方法底部,实现单选部分:mListView = (ListView)layout.findViewById(R.id.listView_choice); mListView.setAdapter(adapter); mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { currIndex = position; adapter.setSelectItem(position); onItemClickListener.onItemClick(parent, view, position, id); dialog.dismiss(); } });

Android自定义AlertDialog实现单选操作Android自定义AlertDialog实现单选操作

10、其中用到了单选按钮(也可以去掉单选按钮部分,直接用一文本框就可以了),单选按钮的样式selector_checkbox.xml:<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="true" android:state_checked="false" android:drawable="@drawable/checkbox_unselect" /> <item android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/checkbox_selected" /> <item android:drawable="@drawable/checkbox_unselect" /></selector>需要的两张图片可在网上随便找两张。

Android自定义AlertDialog实现单选操作

12、例子中用到的几张图片

Android自定义AlertDialog实现单选操作Android自定义AlertDialog实现单选操作

13、还有一个按钮的样式文件,这里就不贴了,使用时,可根据自己项目的实际情况自定义一个。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢