如何在listview中单击特定项目时将listview的选中项目框的颜色设置为绿色以外的其他颜色?

时间:2012-06-12 10:55:12

标签: android listview

我有一个listview。当用户选择一个特定的项目时,复选框颜色变为绿色...我希望复选框的颜色应该变成橙色或红色..这样可能吗?

2 个答案:

答案 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)并更改它。