【发布时间】:2016-10-26 09:57:23
【问题描述】:
我的RecyclerView 有一个CardView,我的CardView 包含一个GridView 和其他一些TextViews。
public MyCardViewHolder(View view) {
super(view);
this.view=view;
gridView = (GridView) view.findViewById(R.id.gridView);
nickNameTextView =(TextView) view.findViewById(R.id.card_nickname_textView);
...
}
我在ViewHolder 上设置了OnClickListener,但是当我在GridView 内部单击时,单击事件永远不会被触发。这是OnClickListener的代码:
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
...
});
}
感谢您的帮助。
【问题讨论】:
-
你能把“this.view=view;”去掉吗我在这段代码中没有发现问题
-
"view" 代表整个视图持有者。因为我想在整个视图持有者上添加一个 onclick 事件,所以我将侦听器设置在“视图”上。所以我无法删除它。
-
试试这个 gridView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ... }); }
-
这是解决方法之一。但是你知道为什么父 onclick 监听器不能在它的子视图组上工作吗?
-
子视图可以使用像 if (view instanceof Textview) 这样的 instanceof 对象
标签: android onclicklistener android-viewholder