2014-05-02 133 views
0

我面臨一個問題,我不知道如何解決,爲什麼所有這一切都發生。OnTouchListener()不工作沒有onClickListener()

很簡單。我有一個ImageView作爲一個按鈕工作,當用戶點擊它時,屏幕上有東西在移動,當觸摸重新發布時它會停止。

所以我剛剛在我的ImageView上設置了OnTouchListener,並希望它能夠正常工作,但事實並非如此。

我需要實現空的OnClickListener,然後它正在做它應該做的事情。

private void setSolveImage() { 
    ImageView solve_button = (ImageView)getView().findViewById(R.id.solve_button); 

    solve_button.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
     } 
    }); 

    solve_button.setOnTouchListener(new OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      int action = event.getAction(); 
      if (action == MotionEvent.ACTION_DOWN) { 
        screen.setTilesOrder(status.getCleanStatus()); // do something with screen 
      } else if (action == MotionEvent.ACTION_UP) { 
        screen.setTilesOrder(status.getGameStatus()); // return screen to previous state 
      } 
     } 
     return false; 
     } 
    }); 
} 

你能告訴我請問我做錯了什麼?爲什麼我必須這樣做?

回答

2

只是做一個改變,做了一招

return true;代替return false;在​​

如果回調消耗上的觸摸,否則爲false不需要設置setOnClickListener()

+0

謝謝!我沒有使用這個輸入。它非常明顯。 – Roval

0

返回true。所以在setOnTouchListener中將返回類型更改爲true,而不是false。