Android - 列表视图项目在选中时更改背景(可检查)

时间:2016-02-01 14:13:45

标签: android listview

我怎样才能让ListView项目在被按下后改变了它的背景,就像它被选中但没有复选框一样,我知道它有一个checkListener或者其他东西,但我不知道如何申请。按下后保持其颜色背景,再次按下时更改回第一个背景。

3 个答案:

答案 0 :(得分:2)

您的listItem.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/activatedBackgroundIndicator"
android:orientation="vertical" >

<TextView
    android:id="@+id/tv_list_item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical" />
</LinearLayout>

你的选择器:listview_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime">

<item android:drawable="@drawable/list_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/list_selected" android:state_activated="true"/>
<item android:drawable="@drawable/list_default"/>

</selector>

你的listivew布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ListView
    android:id="@+id/listViewMainFragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:listSelector="@drawable/listview_selector.xml"
    android:choiceMode="singleChoice">
</ListView>

</LinearLayout>

答案 1 :(得分:1)

1)在boolean中创建Model-Class字段 2)定义项目的根Layout(创建id并在ListView Adapter's getView()方法中查找视图。)
3)如果点击新的OnClickListener = true,则为根Layout添加boolean 4)如果boolean项的新Model-Class为真,请设置root Layout bg_c​​olor_1,否则设置bg_color_2。

答案 2 :(得分:1)

  

试试这个

 listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            view.setBackgroundColor(Color.GREEN);
        }
    });