Android 按顺序处理触摸事件
我想编写一个程序,在单个活动中按特定顺序处理触摸事件 例如: 显示了一些视图。 如果用户没有点击第一个视图,我将显示另一个活动。 但是,如果用户点击它,我想检测第二个,然后是第三个,等等 我如何处理多个触摸事件?Android 按顺序处理触摸事件,android,Android,我想编写一个程序,在单个活动中按特定顺序处理触摸事件 例如: 显示了一些视图。 如果用户没有点击第一个视图,我将显示另一个活动。 但是,如果用户点击它,我想检测第二个,然后是第三个,等等 我如何处理多个触摸事件? 我想我需要一个onTouchEvent方法,在其中我需要一个if-else语句用于第一次单击,但我不知道如何监控后续的触摸事件。我假设图片是主视图中的一个图像视图。为什么不在每个视图中添加touchlisteners呢?这可能会对您有所帮助。我总是这样做的 public void on
我想我需要一个
onTouchEvent
方法,在其中我需要一个if-else语句用于第一次单击,但我不知道如何监控后续的触摸事件。我假设图片是主视图中的一个图像视图。为什么不在每个视图中添加touchlisteners呢?这可能会对您有所帮助。我总是这样做的
public void onClick(View v){
if(v==imageView1){
//do ssomething
}
if(v== imageView2){
//do something
}
if(v==imageView3){
//do something
}
这样,您可以根据不同的按钮或图像视图执行操作,仅当单击第n个视图时,才为n+1视图设置
onClickListener
像这样
view1.setOnClickListener(new OnClickListener() {
void onClick(View v) {
view2.setOnclickListner(new Onclicklistener() {
void onClick(View v) {
// add further view's click listeners else do what ever if this
// is the last view.
}
});
}
});
这不是一个优雅的解决方案,但应该很有效。从您的问题陈述来看,您似乎有一个有序的视图列表,每个视图都应该有一个触摸式侦听器,但是第二个视图的侦听器不应该启动,除非第一个视图的侦听器首先启动 这可以通过在您的活动中放置计数器轻松完成:
private int highestIndexTapped
。点击视图时,检查其索引是否为index==highestIndexTapped+1
如果是,则将
highestIndexTapped
增加1并触发侦听器。否则,要么接受触摸事件,要么将其传递到管道的下一部分。问题不清楚。请重新措辞。对不起,我说得再清楚不过了。杜德应该提高你的问题陈述技能。是的,它是一个图像视图,也可以是一个按钮。我的问题是我不知道如何有序地处理事件。现在还不清楚你想做什么。如果您使用触控监听器,您不必担心顺序,因为每个视图都有不同的触控监听器,并且只有在特定视图被触控时才会被调用。@Jan,我认为他需要按视图出现的顺序或类似的顺序接受点击。例如,是的,如果屏幕上的图片从左到右显示,我想从左到右触摸它们。例如,先按1,然后按2秒,再按3秒等等,这对我有帮助,但不是完全的。我还不知道如何按顺序处理事件。所以:view1.setOnClickListener(new-OnClickListener(){void-onClick(View-v){//do-something}view2.setOnClickListener(new-OnClickListener(){void-onClick(View-v){//do-something}});会很好的,谢谢你的帮助!