按顺序处理触摸事件

时间:2011-08-18 17:36:50

标签: android

我想编写一个程序,在单个活动中按特定顺序处理触摸事件。

例如: 显示了一些视图。 如果用户没有点击第一个视图,我将显示另一个活动。 但是,如果用户点击它,我想检测第二个,然后是第三个,等等。

如何处理多个触控事件? 我想我需要一个onTouchEvent方法,在第一次点击时我需要一个if-else语句,但我不知道如何监控后续的触摸事件。

4 个答案:

答案 0 :(得分:4)

它可能对你有帮助。我总是这样做

public void onClick(View v){
if(v==imageView1){

//do ssomething 
}
if(v== imageView2){
//do something
}
if(v==imageView3){
//do something
}
像这样你可以根据不同的按钮或图像查看

答案 1 :(得分:0)

我假设图片是主视图中的ImageView。为什么不在每个视图中添加touchlisteners?

答案 2 :(得分:0)

仅在单击第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.
           }
        });
    }

});

不是一个优雅的解决方案,但应该工作恕我直言。

答案 3 :(得分:0)

从您的问题陈述中,您似乎有一个有序的视图列表,每个视图都应该有一个触摸侦听器,但第二个视图的侦听器不应该触发,除非第一个视图的侦听器先触发。

这可以通过在您的活动中保留一个计数器来轻松完成: private int highestIndexTapped。点击视图时,请检查其索引是否为index == highestIndexTapped + 1

如果是,请将highestIndexTapped增加1并触发侦听器。否则要么吃掉触摸事件,要么将其传递给管道的下一部分。