突出显示列表中的TextView项

时间:2011-06-01 09:58:45

标签: android android-layout

我有ListView:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background"
    android:orientation="vertical">

    <ImageView 
        android:layout_height="wrap_content"
        android:id="@+id/imageView1"
        android:src="@drawable/tab"
        android:layout_gravity="center_horizontal"
        android:layout_width="fill_parent"></ImageView>

    <TextView
        android:id="@+id/subcat"
        android:background="#b9cd4a"
        android:layout_width="fill_parent"
        android:textColor="#fff"
        android:textStyle="bold"
        android:layout_height="35dp"
        android:textSize="18dp"
        android:paddingLeft="10dp"
        android:paddingTop="6dp"
        android:text="Choose Location"></TextView>

    <ListView
        android:id="@+id/sub_catlist"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:listSelector="@color/black"></ListView>

</LinearLayout>

我使用TextView布局扩充列表:

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:background="#fff"
    android:orientation="vertical"
    android:layout_height="65dp" >

    <TextView
        android:text="@+id/albumDetails"
        android:id="@+id/albumDetails"
        android:textColor="#000"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="5dp"
        android:textSize="16dp"
        android:layout_width="wrap_content"
        android:paddingTop="8dp"
        android:layout_height="45dp"></TextView>

</LinearLayout>

问题是当我点击列表项时,我没有看到任何突出显示。我需要在用户点击项目时显示突出显示。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

TextView拦截来自ListView的点击事件。设置属性

android:focusable="false"
android:clickable="false" 

到列表的TextView

答案 1 :(得分:0)

我认为问题可能出在android:listSelector="@color/black",删除此行

示例ListView

<ListView
    android:id="@+id/nativecontacts_contacts_ListView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:drawSelectorOnTop="false"
    android:background="@color/White"
    android:divider="@drawable/menu_line"
    android:cacheColorHint="#00000000"
    android:clickable="true" />

答案 2 :(得分:0)

在自定义列表视图下方使用的代码。

 TextViewClick.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {

                    int count = listview.getChildCount();
                    for (int i = 0; i < count; i++) {
                        View v = listview.getChildAt(i);
                        TextView tx = (TextView) v.findViewById(R.id.txt1);
                        txt1.setBackgroundColor(Color.RED);
                    }
                    txt1.setBackgroundColor(Color.GREEN);
            }
 });