我有一个listview。当用户选择一个特定的项目时,复选框颜色变为绿色...我希望复选框的颜色应该变成橙色或红色..这样可能吗?
答案 0 :(得分:1)
<CheckBox android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="new checkbox"
android:background="@drawable/checkbox_background"
android:button="@drawable/checkbox" />
@ drawable /复选框如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_focused="true"
android:drawable="@drawable/checkbox_on_background_focus_red" />
<item android:state_checked="false" android:state_focused="true"
android:drawable="@drawable/checkbox_off_background_focus_orange" />
<item android:state_checked="false"
android:drawable="@drawable/checkbox_off_background" />
<item android:state_checked="true"
android:drawable="@drawable/checkbox_on_background" />
</selector>
checkbox_on_background_focus_red,checkbox_off_background_focus_orang,checkbox_off_background和checkbox_on_background是您在drawble文件夹中所需的复选框图片
答案 1 :(得分:0)
1- implement the OncheckedLinstener and notify data set changed to list
2- put check in getview if(chk.isChecked()){//setBG color green }else {red}
2- either set the selector to checkbox or change the BG color of chk box in if else in getview
如果想要优化那么
使用复选框在标签中设置列表项的位置,在OncheckedLinstener中,您将获得视图,只需从选项卡的视图中获取位置,并使用getFirstVisiblePosition和getLastVisiblePosition,getChildAt(int index)并更改它。