gpt4 book ai didi

java - OnLongCLickListener 无法正常工作

转载 作者:搜寻专家 更新时间:2023-11-01 09:36:54 27 4
gpt4 key购买 nike

我有一个 TextView,有一个 onLongClickListenerOnClick 事件,在按住 TextView 时,它的颜色会改变变为红色,并且在释放时,它的颜色应该变为白色。

问题:当我按住 TextView 并在按住时将我的手指移到它外面,然后离开我的手指,它的颜色不会变成白色。

XML

<TextView
android:layout_width="match_parent"
android:text="hello"
android:textColor="#ffff"
android:id="@+id/timer"
android:layout_height="wrap_content"
/>

Java

final TextView t1 = (TextView) findViewById(R.id.timer);
t1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
t1.setTextColor(Color.WHITE);

}
});
t1.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
t1.setTextColor(Color.RED);
return false;
}
});

最佳答案

View.OnClickListener - View 被点击 时调用的回调接口(interface)定义。View.OnLongClickListener - View 被点击并保持时调用的回调接口(interface)定义。

所以你所说的是 100% 正确的。它应该是红色的,因为它像你那样被点击和按住。

But when i hold the text view and move my finger outside the text view while holding , and then leave my finger , it not changes its color to white

当它只被点击时,你已经给 TextView 赋予了白色!!如果你想像你说的那样获得白色(点击并按住时),你需要在 OnLongClickListener

中设置白色

至此,如果您想检测您的 View 触摸并释放并更改与之相关的颜色,那么您需要使用 OnTouchListener 而不是 clickListeners

View.OnTouchListener - 将触摸事件分派(dispatch)到此 View 时要调用的回调的接口(interface)定义。回调将在触摸事件被赋予 View 之前被调用

       t1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch ( event.getAction() ) {
case MotionEvent.ACTION_DOWN:
t1.setTextColor(Color.RED); // pressed state
break;

case MotionEvent.ACTION_UP:
t1.setTextColor(Color.WHITE); // Released state
break;
}
return true;
}
});

关于java - OnLongCLickListener 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42401205/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com