0

我正在尝试将两者都添加OnClickListenerOnTouchListener我的图像视图中。以下是图像视图的创建方式

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 中进行了测试,而不是在真正的手机中进行了测试,因为我没有。

我该如何解决这个问题?

编辑

任何代码示例将不胜感激

4

3 回答 3

2

您可以在 action_up 时调用 View.performClick()。这会导致在发生实际点击时调用 click 事件。希望能帮助到你。

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;
}
});
于 2013-07-16T08:14:49.360 回答
1

OnTouchListener 挂钩点击事件。而是处理其中的点击事件。看看这个问题的答案

于 2013-07-16T08:10:44.790 回答
0

根据我的经验,如果你不能在同一个视图中同时拥有 onTouchListener 和 onClickListener 。如果您希望您的 onClickListener 工作,请clickable="true"在 XML 中设置。

于 2013-07-16T08:11:28.550 回答