突出显示行选择的颜色

时间:2015-12-09 09:12:15

标签: android list view

我有custom list view longclicklistener。 如果我点击ListView的任何一行,我想设置行选择颜色。 目前没有任何颜色可供选择

这是我的listView

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

<ListView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/listViewProducts"
    android:divider="#dddddd"
    android:dividerHeight="2dp"
    android:smoothScrollbar="true"
    android:stackFromBottom="false"
    android:layout_alignParentLeft="false"
    android:layout_alignParentStart="false"
    android:clickable="true"
    android:focusable="true"
    android:fastScrollAlwaysVisible="false"
    android:background="@drawable/list_selector"/>

ListViewRowItem

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/row_bg"
android:paddingTop="5dp"
android:paddingBottom="5dp">


<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/txtView1"
    android:layout_alignParentTop="true"
    android:textSize="11sp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginLeft="20dp"
    android:focusable="false"
    android:clickable="false"
    android:layout_marginTop="3dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/txtView2"
    android:layout_below="@+id/txtView2"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:textSize="13sp"
    android:layout_marginLeft="20dp"
    android:textColor="@color/DefaultGreen"
    android:textStyle="bold"
    android:focusable="false"
    android:clickable="false"/>

<View
    android:layout_width="2dp"
    android:layout_height="50dp"
    android:background="#e3e3e5"
    android:layout_marginRight="70dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_marginEnd="70dp"
    android:focusable="false"
    android:clickable="false"
    android:id="@+id/Seperator" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="50dp"
    android:id="@+id/txtView3"
    android:textSize="13sp"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_alignLeft="@+id/Seperator"
    android:layout_alignStart="@+id/Seperator"
    android:gravity="center_vertical|center_horizontal"
    android:textColor="@color/DefaultGreen"
    android:textStyle="bold"
    android:focusable="false"
    android:clickable="false"/>

3 个答案:

答案 0 :(得分:1)

 ListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                // TODO Auto-generated method stub
                view.setBackgroundColor(FragementView.getResources().getColor(R.color.colorGreen));
                return false;
            }
        });

检查上面的代码,以便长按

更改颜色

答案 1 :(得分:0)

然后不要在java中使用onlongclick listner使用xml中的选择器。

在drawable

中添加list_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/colorGreen" android:state_pressed="true"/>
    <item android:drawable="@color/colorwhite" android:state_focused="true"/>
    <item android:drawable="@android:color/white"/>

</selector>

在values文件夹中添加color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <color name="colorblack">#000000</color>
    <color name="colorwhite">#ffffff</color>
    <color name="colorGreen">#55C243</color>

</resources>

并将listSelector添加到listview:

 <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:listSelector="@drawable/list_selector" >
    </ListView>

enter image description here 看到这是onclick它

答案 2 :(得分:0)

我在列表行的主视图中保留了android:background =“@ drawable / list_item_selector”,它对我有用。

<?xml version="1.0" encoding="utf-8"?>

<item android:drawable="@color/red" android:state_pressed="true"/>
<item android:drawable="@color/red" android:state_focused="true"/>
<item android:drawable="@color/gray"/>

这是我的选择器