2015-05-14 57 views
0

所以我创建了一个ImageSwitcher,目标是当你向左或向右滑动时,数组中的下一个Image被加载。然后,如果您单击ImageSwitcher,它将使用当前显示的图像开始一个新的活动。设置onClickListener为ImageSwitcher

我遇到的问题是我无法让ImageSwitcher识别点击事件。我已成功设置swipeRight和swipeLeft手势,并尝试设置onClickListener,但是当我单击ImageSwitcher时,没有任何反应。

任何帮助将不胜感激。

imgSwitcher = (ImageSwitcher) findViewById(R.id.highlights_image_switcher); 

imgSwitcher.setFactory(new ViewSwitcher.ViewFactory() { 
    @Override 
    public View makeView() { 
     ImageView myView = new ImageView(getApplicationContext()); 
      myView.setScaleType(ImageView.ScaleType.FIT_CENTER); 
      myView.setLayoutParams(new ImageSwitcher.LayoutParams(
       ImageSwitcher.LayoutParams.MATCH_PARENT, 
       ImageSwitcher.LayoutParams.MATCH_PARENT)); 
      return myView; 
    } 
}); 

imgSwitcher.setOnTouchListener(new OnSwipeTouchListener(getBaseContext()) { 
    @Override 
    public void onSwipeLeft() { 
     highlightsNext(); 
    } 

    @Override 
    public void onSwipeRight() { 
     highlightsPrevious(); 
    } 
}); 

imgSwitcher.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     highlightsAdvance(highlightIndex); 
    } 
}); 
+0

你确定'onClick()'方法永远不会到达吗? – GVillani82

+0

你是否登录过'OnClickListener' ......正如Joseph82所说的,确保点击是问题而不是方法。 –

+0

是的,我设置了一个断点以及打印日志,但都没有达到。 – user3863053

回答

0

因此,对于任何想知道我找到了我的问题的答案。因为我已经实现了onSwipeTouchListener,所以我不能实现一个onClick监听器,因为他们都首先监听Down事件。所以所有的关闭事件都会进入onSwipeTouchListener,因此onClickListener从不会选择任何东西。另一方面,我能够编写一些代码来解决这个问题,如果任何人有兴趣看到它,只需发表评论,我可以把它。