Android ListView-更改活动项的文本颜色

Android ListView-更改活动项的文本颜色,android,listview,Android,Listview,我想在Android中的ListView上创建一个自定义效果。我有一个带有文本项的列表——一种菜单。我想更改文本的颜色并为其添加阴影!,当Android更改列表元素下的背景时 我有一个自定义视图,它扩展了TextView,在这里我重写了onTouchEvent函数,并创建了一个函数,该函数可以更改文本的颜色 @Override public boolean onTouchEvent(MotionEvent event){ Log.v(TAG, "" + event.getAction()

我想在Android中的ListView上创建一个自定义效果。我有一个带有文本项的列表——一种菜单。我想更改文本的颜色并为其添加阴影!,当Android更改列表元素下的背景时

我有一个自定义视图,它扩展了TextView,在这里我重写了onTouchEvent函数,并创建了一个函数,该函数可以更改文本的颜色

@Override
public boolean onTouchEvent(MotionEvent event){
    Log.v(TAG, "" + event.getAction());
    if (event.getAction() == MotionEvent.ACTION_DOWN){
        Log.v(TAG, "Touch started.");
        setShadowLayer(6, 0, 0, getResources().getColor(R.color.selectedTextShadow));
        setTextColor(getResources().getColor(R.color.selectedTextColor));
        boolean b = super.onTouchEvent(event);
        Log.v(TAG, "Action down, super returns: " + (b ? "true" : "false"));
        //return true;
    }
    return super.onTouchEvent(event);
}

public void endSelection(){
    setShadowLayer(0, 0, 0, getResources().getColor(R.color.textColor));
    setTextColor(getResources().getColor(R.color.textColor));
}
在ListFragment中,我重写onListItemClick函数,调用视图的endSelection函数

@Override
public void onListItemClick (ListView l, View v, int position, long id){
    Log.v(TAG, "Clicked on: " + position);
    ((ListRowText) v.findViewById(R.id.subMenuRow_menuItem)).endSelection();
}
快到珀德克特了。但正如你们在视频中所看到的,当我在其他地方滑动手指时,它并没有改变颜色,颜色也会变暗

有更好的方法吗? 我已经找到了s,但无法为StateListDrawable添加阴影。或者我可以吗?
谢谢

顺便说一句,外观整洁的UI。你可能想看看安卓资产工作室(AndroidAssetStudios),并生成一个列表选择器来查看touch上正在跟踪的所有事件。对于单个列表项视图,您可能希望仅为文本视图绘制单独的状态列表,并根据列表选择器设置其样式。以下是生成的选择器处理的状态列表:

状态\窗口\聚焦=错误 state\u focused=true&&state\u enabled=false&&state\u pressed=true state\u focused=true&&state\u enabled=false state\u focused=true&&state\u pressed=true state\u focused=false&&state\u pressed=true state\u focused=true
正如Patty p所说,您可以创建一个状态选择器,但在您的情况下,我认为您需要的是一个文本选择器

您只需在res文件夹中创建一个名为color的文件夹,就可以像列表选择器一样添加选择器

然后可以将其用作文本颜色

android:textColor=@color/mystatelist 各州都是一样的