TextView onTouchListener无法正常工作?

时间:2015-07-24 13:19:33

标签: android android-activity

我已经在触摸监听器上实现了一个客户,当用户触摸textview时,该用户应该更改textview的颜色,并在释放手指时将其更改回默认颜色。

public class CustomTouchListener implements View.OnTouchListener {
        public boolean onTouch(View view, MotionEvent motionEvent) {
            switch (motionEvent.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    ((TextView) view).setTextColor(Color.parseColor("#1089F9"));
                    break;
                case MotionEvent.ACTION_CANCEL:
                case MotionEvent.ACTION_UP:
                    ((TextView) view).setTextColor(Color.parseColor("#AA000000"));
                    break;
            }
            return false;
        }
    }


final TextView basicDetails = (TextView) findViewById(R.id.basicdetailstitle);
basicDetails.setOnTouchListener(new CustomTouchListener());

触摸时颜色变为蓝色(#1089F9),但释放手指时,颜色不会变回默认值(#AA000000)。我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

如果您总是在MotionEvent.ACTION_DOWN上返回false,则不会收到以下事件。

您可以使用选择器实现您想要的功能:

在:res / color / myselector.xml

中创建一个新的xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true" android:color="#1089F9" /> 
     <item android:color="#AA000000" /> 
</selector>

在您的布局中,将以下内容添加到TextView:

android:textColor="@color/myselector"

答案 1 :(得分:1)

只需返回true即可完成

Follow this link