我正在尝试将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
的类实现,用于监控左右滑动。这个课程可以在这里找到 - https://stackoverflow.com/a/12938787/1379286
但问题是,当我将OnTouchListener
设置为图像视图时,OnClickListener
没有响应/不执行应该执行的操作。 ImageView仅响应OnTouchListener
。如果我删除OnTouchListener
,则OnClickListener
有效。我在eclipse中的虚拟设备WVGA5.1和Galaxy Nexus中进行了测试,而不是真正的手机,因为我没有。
我该如何解决这个问题?
修改
非常感谢任何代码示例
答案 0 :(得分: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;
}
});
答案 1 :(得分:1)
OnTouchListener挂钩click事件。处理其中的click事件。查看this question
上的答案答案 2 :(得分:0)
根据我的经验,如果你不能同时拥有onTouchListener和onClickListener。如果您希望onClickListener工作,请在XML中设置clickable="true"
。