我在android中创建了一个可扩展视图,RecycleView
而不是ListView
。起初我遇到了一些问题,但现在一切正常。所以现在我尝试从组列表中选择一个孩子并使用clickListener
进行一些操作。我尝试了OnChildClickListener
,但这不适用于RecycleView。对我有用的唯一代码是:
textviewitem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("child", "works");
}
});
虽然textviewitem
是:Context context = parent.getContext();
final TextView textviewitem= new TextView(context);
现在事情就是这样,我无法告诉哪个孩子被点击了,这是一个问题。
顺便说一句,我搜索了很多,看到了许多相关的链接,但我找不到答案。
如果您希望我发布我的整个ViewHolder
,请说出来。
修改
这是我的整个ViewHolder:
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int type){
View view = null;
Context context = parent.getContext();
float dp = context.getResources().getDisplayMetrics().density;
int subItemPaddingLeft = (int) (18 * dp);
int subItemPaddingTopAndBottom = (int) (5 * dp);
switch (type) {
case HEADER:
LayoutInflater inflater = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.list_header, parent, false);
ListHeaderViewHolder header = new ListHeaderViewHolder(view);
return header;
case CHILD:
final TextView textviewitem = new TextView(context);
textviewitem.setPadding(subItemPaddingLeft, subItemPaddingTopAndBottom, 0, subItemPaddingTopAndBottom);
textviewitem.setTextColor(0x88000000);
textviewitem.setLayoutParams(
new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
textviewitem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("child", "works");
}
});
return new RecyclerView.ViewHolder(textviewitem) {
};
}
return null;
}
答案 0 :(得分:1)
您可以在onBindViewHolder
中设置点击监听器,也可以根据数据项具有的唯一内容(即索引号,ID等)在TextView
上设置标签。
在onBindViewHolder
中,你可以:
viewHolder.itemView.setTag(myKey)