正如onItemClick
中不再存在的那样RecyclerView
,ButterKnife 是否仍然能够处理带有@onItemClick
或带有@onClick
注释的项目点击?
如果不是这样,有什么办法可以使用它吗?
正如onItemClick
中不再存在的那样RecyclerView
,ButterKnife 是否仍然能够处理带有@onItemClick
或带有@onClick
注释的项目点击?
如果不是这样,有什么办法可以使用它吗?
我的解决方案是@OnClick
在 ViewHolder 内部使用。这是了解单击“列表项”的哪个元素的唯一方法。
@OnClick注释有效,在您的 ViewHolder 类中使用如下。
class ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.title)
TextView title;
ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
@OnClick
void onClick(View view) {
System.out.println(getAdapterPosition()); //clicked item position
}
}
不幸的是,ButterKnife 不支持此功能。你可以使用 RecyclerView.OnItemTouchListener
or@OnClick
和 interface 做出一些东西。
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener
@Override
public void onClick(View view) {
int data = getAdapterPosition();
/*
Intent in = new Intent(getContext(),NextActivity.class);
in.putExtra("data",mTextView.getText().toString());
startActivity(in);
*/
// Flower current = ls.get(position);
## Heading ##
int itemPosition = recycelr.getChildLayoutPosition(view);
Flower item = fl_List.get(itemPosition);
Intent in = new Intent(getContext(),NextActivity.class);
in.putExtra("id",0);
in.putExtra("data",item.getName());
startActivity(in);
}