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"