因为要用自定义图片的radiobutton的listview,最开始想自己重新写BaseAdapter,重新定义BaseAdapter中的每个list的item。总之android提供了太多方便的控件,就想用他自己的,所以我发现了CheckedTextView。
自己定义的layout文件
list_item_single_choice.xml
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:checkMark="@drawable/radiobuttonstyle
android:gravity="center_vertical"
android:paddingLeft="30dp"
android:paddingRight="30dp"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="@color/textcolor_select"
android:textSize="22sp" />
其中checkmark就是自己定义radiobutton的drawable
radiobuttonstyle.xml定义如下
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/system_seat_setting_on" android:state_checked="true"></item>
<item android:drawable="@drawable/system_seat_setting_on" android:state_selected="true"></item>
<item android:drawable="@drawable/system_seat_setting_on" android:state_pressed="true"></item>
<item android:drawable="@drawable/system_seat_setting_off"></item>
</selector>
这样自己就不需要重新写adapte了。
代码里实现如下
mListView.setAdapter(new ArrayAdapter<String>(context,R.layout.list_item_single_choice, Arraystring));
直接用了系统的ArrayAdapter就可以啦~~