Android listview no longer highlights selection onclick
Asked Answered
E

1

11

I have a listview that was showing a yellowtint on items when I touched them. All I've done differently is change the background image in that listview xml , and now it no longer will show me the yellowtint

Here is code

the list view xml, it is just a textview with a background image:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:padding="10dp"
    android:textSize="24sp"
    android:textColor="#000000"
    android:background="@drawable/bglistitem"
    android:gravity="center_vertical|center_horizontal">
</TextView>

the place in another layout where it is called

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:padding="10dp"
    android:textSize="24sp"
    android:textColor="#000000"
    android:background="@drawable/bglistitem"
    android:gravity="center_vertical|center_horizontal">
</TextView>

and here is the code:

lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {}
});

as you can see above, I was never doing anything that would change the default behavior of the selection highlighting, why would this be different now, perhaps something you see that I don't see?

Estelaestele answered 16/8, 2011 at 22:11 Comment(0)
S
20

When you added a new background to the ListView you overrode androids default background that was most likely using a selector to tint the ListItems depending on their state.

Try to use a custom selector

Create an XML file, mycustombackground.xml, and add this to it:

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_pressed="true"
      android:drawable="@drawable/item_pressed" /> 
   <item android:state_focused="true"
      android:drawable="@drawable/item_focused" /> 
   <item android:drawable="@drawable/item_normal" /> 
 </selector>

Replace the @drawables with your own in relation to the state. Then set the background of your listview to the xml file.

android:background="@drawable/mycustombackground" 

You may want to take a look into the XML to create the yellow color, or just create your own image.

Somali answered 16/8, 2011 at 22:35 Comment(1)
I figured it out, thanks to your insight, helped me narrow down possibilities. Turns out if you have any alpha in the image then the yellow highlighting will happen. If you have an opaque image then it will not highlightEstelaestele

© 2022 - 2024 — McMap. All rights reserved.