2015-12-09 5 views
0

У меня есть 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"/> 

+0

XML-код достаточно не. покажите нам хотя бы активность со слушателем. –

+0

Я добавлю свой код для публикации 1 – Ghost108

+0

Ссылки Hope полезны, потому что просто xml недостаточно для решения. Ссылки (1): - http://stackoverflow.com/questions/2217753/changing-background-color-of-listview-items-on-android Ссылка (2): -http: //stackoverflow.com/questions/16976431/change-background-color-of-selected-item-on-a-listview – InsaneCat

ответ

0

затем не используйте onlongclick listner в java, используйте селектора в xml.

добавить 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> 

добавить 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 его

+0

Я делаю это так - но без селекторного цвета, если я касаюсь любой строки – Ghost108

+0

его работает для меня корреляция –

+0

хорошо, но не для меня - так что не так ^^ – Ghost108

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; 
      } 
     }); 

проверьте приведенный выше код для изменения цвета при длинном нажатии

+0

да, это может помочь, но цвет не должен оставаться зеленым, он должен устанавливать только зеленый цвет, пока мой палец находится на строке, если мой палец покидает эту строку, цвет по умолчанию должен быть установлен – Ghost108

+0

. Я добавил еще один ответ, пожалуйста, проверьте и дайте мне знать –

+0

посмотрите на мои комментарии, пожалуйста :) – Ghost108

0

Я сохранил андроид: 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"/> 

это мой селектор

+0

если я, но этот unter андроид: фон, цвет фона всего моего представления списка будет изменяться, но не выбранная строка – Ghost108

+0

вам нужно сохранить его в главном представлении макета «строка списка» не в макете «list» – Srikanth

+0

i добавлен мой список view.xml и мой listviewrowitem.xml - в чем моя ошибка? – Ghost108

Смежные вопросы