0

我想將OnClickListenerOnTouchListener添加到我的圖像視圖中。以下是如何將圖像視圖中創建'OnClickListener'沒有響應

dialogImage = (ImageView)findViewById(R.id.dialogImage); 

以下是如何監聽器設置

dialogImage.setOnClickListener(dialogBoxClicked); 
dialogImage.setOnTouchListener(imageViewSwiped); 

以下是監聽方法實現

public OnClickListener dialogBoxClicked = new OnClickListener() 
    { 

     @Override 
     public void onClick(View v) 
     { 
         //To do has been removed because the code is too big 
      } 

    }; 

OnTouchListener imageViewSwiped = new OnSwipeTouchListener() 
    { 
     public void onSwipeRight() 
     { 
      currentlyActiveQuestion++; 
      currentWord = words.get(currentlyActiveQuestion); 
      setUI(); 
     } 

      public void onSwipeLeft() 
      { 
       currentlyActiveQuestion--; 
       currentWord = words.get(currentlyActiveQuestion); 
       setUI(); 
      } 
    }; 

這裏OnTouchListener由類實現稱爲OnSwipeTouchListener來監視左右滑動。這個類可以在這裏找到 - https://stackoverflow.com/a/12938787/1379286

但現在的問題是,當我設置OnTouchListener的圖像來看,OnClickListener沒有響應/不要做它應該做的。 ImageView只響應OnTouchListener。如果我刪除OnTouchListener然後OnClickListener工作。我在eclipse中測試了虛擬設備WVGA5.1和Galaxy Nexus,而不是真正的手機,因爲我沒有。

我該如何解決這個問題?

EDIT

任何代碼示例將不勝感激

+0

請嘗試從'onDown()'方法... –

+0

返回'FALSE'我覺得你ontouchlistener重疊的onclicklistener ..一個單擊無異於觸摸IMO –

+0

您touchListener攔截所有觸摸事件(通常由onDown表示,因此點擊無法被檢測到,請參閱@mach answer。 – njzk2

回答

2

您可能在action_up時調用View.performClick()。這會導致點擊事件在實際點擊發生時被調用。希望能幫助到你。

your_txtView.setOnClickListener(new TextView.OnClickListener(){ 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

    } 
}); 

your_txtView.setOnTouchListener(new TextView.OnTouchListener(){ 
     @Override 
public boolean onTouch(View v, MotionEvent event) { 
    if (MotionEvent.ACTION_DOWN == event.getAction()) { 

    } else if (MotionEvent.ACTION_UP == event.getAction()) { 
     v.performClick(); 
    } 

    return true; 
} 
}); 
+0

這是粗略的..但它會按預期工作 –

+0

好的,是否有任何可能性,我們無法監控實際刷卡一個虛擬設備? –

+0

@Knight:你能否詳細說明一下,你爲什麼不想監視實際的刷卡行爲?你正在做一些正確的刷卡操作?或者我沒有正確理解你的問題 –

1

的OnTouchListener鉤的點擊事件。代之以處理其中的點擊事件。看看this question

0

答案根據我的經驗,如果你不能同時擁有onTouchListener和onClickListener的視圖。如果您希望onClickListener正常工作,請在XML中設置clickable="true"