【发布时间】:2018-11-08 10:18:11
【问题描述】:
我创建了一个可以重复使用的小部件/控件,我通过扩展 RelativeLayout 创建了它。然后,在我的一个活动中,我在一个循环中创建了一堆这些小部件。但是,当我想让每个小部件响应点击时遇到了问题。
我发现设置 OnTouchListener 有效:
this.setOnTouchListener(new OnTouchListener(){
public boolean onTouch(View arg0, MotionEvent arg1) {
//Triggers debug message
}
});
但OnClickListener 没有:
this.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
//Doesn't trigger debug message
}
});
这是为什么?
【问题讨论】:
-
你是否将这两个都添加到同一个对象中?
-
@nicholas.hauschild - 不,一次一个 - 将另一个注释掉..
-
您必须在 onTouchListener 中返回 True 以防止事件被消耗。
-
@harvey_slash,实际上返回 True 意味着它必须被消耗。所以不消费它,你必须返回 false
-
我从 ontouchlistener 返回了 false 但它不起作用。
标签: android android-view onclicklistener ontouchlistener