如何在android中检测点击事件是否完成?
我动态创建视图,并正常处理它们的单击事件,如下所示:如何在android中检测点击事件是否完成?,android,event-handling,touch,onclicklistener,android-event,Android,Event Handling,Touch,Onclicklistener,Android Event,我动态创建视图,并正常处理它们的单击事件,如下所示: myView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub v.setBackgroundColor(0xaaffffff);
myView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
v.setBackgroundColor(0xaaffffff);
}
});
但此代码不处理onRelease事件,因此单击后视图仍保留白色背景
那么,当单击状态结束时,如何将背景设置为另一个值
提前谢谢
编辑:
OnTouchListener
做了完全相同的事情。我想我需要类似于onReleaseListener
?的东西,因为您需要使用onTouchListener
=>
请参阅本手册,了解如何使用本手册
例如:
myView.setOnTouchListener(
new View.OnTouchListener() {
public boolean onTouch(View myView, MotionEvent event) {
int action = event.getAction();
if (action==MotionEvent.ACTION_MOVE)
{
myView.setBackgroundColor(Color.BLUE);
}
if (action==MotionEvent.ACTION_UP)
{
myView.setBackgroundColor(Color.RED);
}
if (action==MotionEvent.ACTION_DOWN)
{
myView.setBackgroundColor(Color.YELLOW);
}
// TODO Auto-generated method stub
return true;
}
}
为此,您需要使用
onTouchListener
=>
请参阅本手册,了解如何使用本手册
例如:
myView.setOnTouchListener(
new View.OnTouchListener() {
public boolean onTouch(View myView, MotionEvent event) {
int action = event.getAction();
if (action==MotionEvent.ACTION_MOVE)
{
myView.setBackgroundColor(Color.BLUE);
}
if (action==MotionEvent.ACTION_UP)
{
myView.setBackgroundColor(Color.RED);
}
if (action==MotionEvent.ACTION_DOWN)
{
myView.setBackgroundColor(Color.YELLOW);
}
// TODO Auto-generated method stub
return true;
}
}
Android有一个选择器。在drawable文件夹中的xml文件中定义,并将其用作背景:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@drawable/YOURDRAWABLE" />
<item android:state_pressed="true" android:drawable="@drawable/YOURDRAWABLE_WHEN_CLICKED" />
</selector>
请检查Android是否有此选择器。在drawable文件夹中的xml文件中定义,并将其用作背景:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@drawable/YOURDRAWABLE" />
<item android:state_pressed="true" android:drawable="@drawable/YOURDRAWABLE_WHEN_CLICKED" />
</selector>
检查状态列表是为了在状态更改时更新样式。看看这个。
状态列表用于状态更改时的样式更新。看看这个。
您需要设置onTouchListener(),而不是使用xml@A.S.是的,这是个好主意。但是我也想学习编程。你需要设置onTouchListener()而不是用xml@A.S.是的,这是个好主意。但是我也想学编程。谢谢你的帮助。我会投你一票。但正如我所说的,这不是我的答案。好的,然后使用onTouchListener处理不同的事件。谢谢谢谢你的帮助。我会投你一票。但正如我所说的,这不是我的答案。好的,然后使用onTouchListener处理不同的事件。谢谢哦,简单而美丽。谢谢:)我接受这个。但是有没有关于如何在过渡中做到这一点的想法?还有一个小问题,在向下+移动之后,动作不会启动。有什么解决方法吗?@mobilgelistiric我尝试在
onTouch
函数中返回true
而不是false
。见编辑后的答案。返回true
表示您正在消费事件,因此您将获得后续事件。仍然没有成功。我问了一个不同的问题。现在接受你的回答。谢谢你的帮助!好的,谢谢。祝你好运。我建议您在消费活动时返回true。。。你离正确的事情不远了,简单而美丽。谢谢:)我接受这个。但是有没有关于如何在过渡中做到这一点的想法?还有一个小问题,在向下+移动之后,动作不会启动。有什么解决方法吗?@mobilgelistiric我尝试在onTouch
函数中返回true
而不是false
。见编辑后的答案。返回true
表示您正在消费事件,因此您将获得后续事件。仍然没有成功。我问了一个不同的问题。现在接受你的回答。谢谢你的帮助!好的,谢谢。祝你好运。我建议您在消费活动时返回true。。。你离做正确的事情不远了