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





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>

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(); } });


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>需要的两张图片可在网上随便找两张。

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


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