TouchListener被多次调用

时间:2015-02-04 05:53:48

标签: android

我是Android开发新手,想创建一个简单的游戏来学习android的基础知识。我正在尝试实施TicTacToe游戏。

我在运行时动态生成'X'和'O'图像,并将'X'和'O'放在显示单元格的另一个图像的顶部。

我的代码是 https://github.com/vtkrishn/tictac/blob/master/app/src/main/java/com/vtkrishn/myapplication/landingActivity.java

单击“新游戏按钮”我将显示该板,我正在尝试在图像上找到用户触摸事件的x,y坐标。现在,初始的'O'将被随机放置,之后'X'将由用户放置。我看到当用户触摸一次多次调用监听器时。

我不确定为什么。任何人都可以帮忙吗? 我还想在用户按下'X'后立即放置'O',我应该在touchListener中调用placeCircle方法吗?

谢谢, 维诺德!

图片在这里http://i.stack.imgur.com/7BMzb.png

2 个答案:

答案 0 :(得分:0)

我认为正在为ACTION_DOWN和ACTION_UP事件调用侦听器。 要让它只在一个事件中执行,请执行以下操作:

public boolean onTouch(View v, MotionEvent event) {

switch(event.getAction())
{
    case MotionEvent.ACTION_DOWN:
         // code for event action DOWN
    break;

    case MotionEvent.ACTION_UP:
        // code for event action UP
    break;

  }

  // rest of the code
}

答案 1 :(得分:0)

you must first call setontouchlistner(this);

after that make some thread or according to your requirement you must implement 
setontouchlistener(null);

after thread completing you again call setontouchlistener(this); it will work 




public boolean onTouch(View v, MotionEvent event) {

switch(event.getAction())
{
    case MotionEvent.ACTION_DOWN:
         // code for event action DOWN
    break;

    case MotionEvent.ACTION_UP:
        // code for event action UP
    break;

  }

  // rest of the code
}