Android 如何在listview项目中设置textview选择器?

Android 如何在listview项目中设置textview选择器?,android,listview,textview,selector,Android,Listview,Textview,Selector,我想在按下listview项时更改TextView颜色和listview项的背景色。 我将可绘制选择器设置为listview,并将颜色选择器设置为textview。每个选择器都可以正常工作,但不能同时工作 比如说,, 按listview>listview选择器工作,textview选择器不工作 在listview>texview选择器中按textview,listview选择器不工作 当我使用此选项时,android:duplicateParentState=“true” 在listview>n

我想在按下listview项时更改TextView颜色和listview项的背景色。 我将可绘制选择器设置为listview,并将颜色选择器设置为textview。每个选择器都可以正常工作,但不能同时工作

比如说,, 按listview>listview选择器工作,textview选择器不工作 在listview>texview选择器中按textview,listview选择器不工作

当我使用此选项时,android:duplicateParentState=“true” 在listview>nothing中按textview,listview和textview选择器均不工作

有人有别的好主意吗

这是我的listview布局

<FrameLayout
android:layout_width="match_parent"
android:layout_height="64dp"
android:layout_margin="2dp"
android:background="@drawable/list_selector" >

<TextView
    android:id="@+id/title"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_gravity="left|center_vertical"
    android:ellipsize="end"
    android:textColor="@color/color_list_selector"
    android:textSize="22dp" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right|center_vertical"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/image"
        android:layout_width="36dp"
        android:layout_height="36dp"
        android:layout_gravity="right|center_vertical"
        android:layout_marginBottom="16dp"
        android:layout_marginTop="16dp"
        android:src="@drawable/image" />

    <TextView
        android:id="@+id/title"
        android:layout_width="30dp"
        android:layout_height="wrap_content"
        android:textSize="22dip" />
</LinearLayout>

还有我的颜色选择器

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_selected="true" android:color="@color/clr_black"/>
<item android:state_focused="true" android:color="@color/clr_black"/>
<item android:state_pressed="true" android:color="@color/clr_blackt"/>
<item android:color="@color/clr_yellow"/>

listView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾

public void onItemClick(AdapterView作为另一种方法,当按下项目时,您可以动态更改
文本视图
的颜色和
列表视图
项目的背景色

在自定义的
列表视图中

layoutRow.setOnTouchListener(new OnTouchListener()
            {
                @Override
                public boolean onTouch(View v, MotionEvent event)
                {
                    // TODO Auto-generated method stub
                    switch (event.getAction())
                    {
                    case MotionEvent.ACTION_DOWN:

                        // Change the TextView color
                        // Change the ListView item's background color

                        return true;
                    case MotionEvent.ACTION_UP:

                        // Reset the TextView color                                           
                    // Reset the ListView item's background color

                        return true;

                    }
                    return false;
                }
            });

其中
layoutRow
是您的
ListView
项目的布局。在您的情况下,您使用了
FrameLayout
,我不确定是否正确理解了您的问题

请尝试textColor的颜色状态列表



没有提到激活状态属性,但它对我有效。

谢谢,但我不能使用触摸事件。应该只使用蓝牙键盘输入事件导致的onclickEvent。OnItemClickListener做得很好。我在适配器getview()的converterview上设置了onclickListener方法。在移除clicklistener并在listview上设置ItemClicklistener后,所有操作都正常工作
layoutRow.setOnTouchListener(new OnTouchListener()
            {
                @Override
                public boolean onTouch(View v, MotionEvent event)
                {
                    // TODO Auto-generated method stub
                    switch (event.getAction())
                    {
                    case MotionEvent.ACTION_DOWN:

                        // Change the TextView color
                        // Change the ListView item's background color

                        return true;
                    case MotionEvent.ACTION_UP:

                        // Reset the TextView color                                           
                    // Reset the ListView item's background color

                        return true;

                    }
                    return false;
                }
            });