问题 如何使用ButterKnife OnItemClick与RecyclerView?


onItemClick 不再是了 RecyclerView,确实 牛油刀 仍然能够处理其项目点击 @onItemClick 或者 @onClick 注释?

如果不是这样,任何使用它的工作?


10113
2017-11-06 04:24


起源

可以说明一下这个,你如何获得点击单元格的位置? - aprofromindia
您能否显示更多数据或代码以了解您的需求 - IgniteCoders


答案:


我的解决方案是使用 @OnClick 在ViewHolder中。这是了解单击“列表项”的哪个元素的唯一方法。


9
2018-01-28 12:36





@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
    }
}

3
2017-11-27 18:25





不幸的是,ButterKnife不支持此功能。你可以用一些东西 RecyclerView.OnItemTouchListener 要么 @OnClick 和界面。


1
2017-11-28 02:58





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);

            }

0
2017-07-08 07:45



请详细说明使用的代码。 - Yatin
而 这段代码 可以回答这个问题,最好包括文本的基本部分以便理解并提供参考代码。 代码只 如果,答案可能会失效 代码 变老了。 - Sufian