Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ';OnClickListener';他没有反应_Android_Eclipse_Android Imageview_Onclicklistener_Ontouchlistener - Fatal编程技术网

Android ';OnClickListener';他没有反应

Android ';OnClickListener';他没有反应,android,eclipse,android-imageview,onclicklistener,ontouchlistener,Android,Eclipse,Android Imageview,Onclicklistener,Ontouchlistener,我正在尝试将OnClickListener和OnTouchListener添加到我的图像视图中。下面是如何创建图像视图 dialogImage = (ImageView)findViewById(R.id.dialogImage); 下面是侦听器的设置方式 dialogImage.setOnClickListener(dialogBoxClicked); dialogImage.setOnTouchListener(imageViewSwiped); 下面是侦听器方法的实现 public O

我正在尝试将
OnClickListener
OnTouchListener
添加到我的图像视图中。下面是如何创建图像视图

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
的类实现,用于监视左右滑动。该类可在此处找到-

但现在的问题是,当我将
OnTouchListener
设置为图像视图时,
OnClickListener
没有响应/没有做它应该做的事情。ImageView仅对TouchListener的
作出响应。如果我删除
OnTouchListener
,则
OnClickListener
可以工作。我在eclipse中的虚拟设备WVGA5.1和Galaxy Nexus中测试了这一点,而不是在真正的手机上,因为我没有

我怎样才能解决这个问题

编辑


任何代码示例都将非常感谢OnTouchListener钩住click事件。改为处理其中的单击事件。在OnTouchListener钩住click事件上查看答案。改为处理其中的单击事件。根据我的经验,如果您不能将onTouchListener和onClickListener都用于同一视图,请查看

上的答案。如果您希望onClickListener工作,请在XML中设置
clickable=“true”

根据我的经验,如果您不能将onTouchListener和onClickListener同时用于同一视图。如果希望onClickListener工作,请在XML中设置
clickable=“true”

当操作启动时,可以调用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;
}
});

当操作启动时,可以调用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;
}
});

请尝试从
onDown()
方法返回
false
。我认为ontouchlistener与onclicklistener重叠。。点击相当于触摸,您的touchListener会截获所有触摸事件(通常由onDown返回true表示。因此,无法检测到点击。请改为查看@mach answer。请尝试从
onDown()返回
false
method…我认为你的ontouchlistener与你的onclicklistener重叠..一次点击就等于一次触摸,你的touchListener会截获所有触摸事件(通常由onDown返回true表示。因此,无法检测到点击。请参阅@mach answer。好的,我们是否有可能无法监控虚拟设备中的实际刷卡?@Knight:您可以详细说明一下。为什么不想监控实际刷卡?您在刷卡时做了一些正确的事情?或者我不明白您的意思。)你说得对。不,我是说我听从了你的建议。现在我可以刷卡和点击了。但问题是,大多数时候我刷卡的时候它会被“点击”。有时它会被点击和刷卡。所以我想这可能是因为我使用的是虚拟设备,鼠标指针是指示“手指”的指针是的,是的,这是因为使用了虚拟设备。在实际设备上运行你的代码它会工作的。好的,有没有可能我们不能监控虚拟设备中的实际刷卡?@Knight:你能详细说明一下吗。你为什么不想监控实际刷卡?你在刷卡上做了一些正确的事情?或者我没有正确理解你。不,我的意思是我听从了你的建议。现在我可以进行滑动和单击。但问题是,大多数情况下,当我滑动时,它会被“单击”。有时它会被单击和滑动。所以我想这可能是因为我使用的是虚拟设备,鼠标指针是指示“手指”的指针是的,是的,这是因为使用了虚拟设备。请在实际设备上运行您的代码,它将正常工作。