如何更改ListView的复选框drawable?

时间:2015-06-16 14:11:15

标签: android listview drawable

我是Android编程的新手,所以任何帮助都将不胜感激!我有一个ListActivity,如下所示:

public class BasicViews5Activity extends ListActivity {

String[] names;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ListView listView = getListView();
    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    listView.setTextFilterEnabled(true);

    names = getResources().getStringArray(R.array.names_array);
    setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_checked,names));
}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    Toast.makeText(this,"You have selected " + names[position], Toast.LENGTH_SHORT).show();
}

}

如何在ListView中更改CheckBox的drawable?

我的Xml看起来像这样:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button android:id="@+id/btn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Show selected items"
        android:onClick="onClick"/>

    <ListView
        android:id="@+id/android:list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:button="@drawable/checked"/>


</LinearLayout>

2 个答案:

答案 0 :(得分:0)

您的问题已有回复here

  

当背景布局很暗时,我不喜欢复选框默认图像的外观,所以我使用xml选择器更改了它,以便在按钮中有白色背景。

     

android:button =“@ drawable / selector_check”

中需要选择器

答案 1 :(得分:0)

如果其他任何新手遇到类似的问题:

您有一个扩展ListActivity或ListFragment的类。内 onActivityCreated()方法需要设置列表Adapater:

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
 R.layout.rowlayout, R.id.label, values);

 setListAdapter(adapter);

在你的rowlayout.xml中你需要一个id为'label'的TextView,这将是 填充了'values'数组中的字符串。

在rowlayout.xml中,您需要一个按钮属性设置的复选框:

android:button="@drawable/custom_checkbox_design"

在custom_checkbox_design.xml中,您需要以下内容:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@drawable/checked" android:state_checked="true"/>
<item android:drawable="@drawable/unchecked" android:state_checked="false"/>

</selector>