Android列表视图不再突出显示选择onclick

时间:2011-08-16 22:11:25

标签: java android listview selection highlighting

我有一个列表视图,当我触摸它们时,它会显示项目上的黄色视图。所有我做的不同的是改变listview xml中的背景图像,现在它不再显示我的yellowtint

这是代码

列表视图xml,它只是一个带有背景图像的文本视图:

<?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>

在另一个布局中的位置,称为

<?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>

这是代码:

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

正如你在上面所看到的,我从来没有做任何会改变选择突出显示的默认行为的事情,为什么现在会有所不同,也许你看到我看不到的东西?

1 个答案:

答案 0 :(得分:20)

当你向ListView添加一个新的背景时,你覆盖了orroids默认背景,这很可能是使用选择器根据ListItems的状态给它们着色。

尝试使用自定义选择器

创建一个XML文件mycustombackground.xml,并将其添加到其中:

<?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>

将@drawables替换为您自己的状态。 然后将listview的背景设置为xml文件。

android:background="@drawable/mycustombackground" 

您可能需要查看XML以创建黄色,或者只是创建自己的图像。