如何使用 FirebaseRecyclerAdapter 实现点击侦听器



我有一个物品持有人类和FirebaseRecyclerAdapter。如何从填充回收器视图的项目的活动管理单击侦听器。

我的持有人

public class ItemHolder extends RecyclerView.ViewHolder{
    public ImageView item1,item2;
    public ItemHolder(View itemView) {
        super(itemView);
        item1= itemView.findViewById(R.id.tv_item1);
        item2= itemView.findViewById(R.id.tv_item2);
    }
    public void bindView(Item item) {
        //TO DO
    }
}

在我的活动内部

adapter = new FirebaseRecyclerAdapter<Item, ItemHolder>(options) {
            @Override
            protected void onBindViewHolder(final ItemHolder holder, final int position, @NonNull final Item item) {
                holder.bindView(item);
                //How to handle
                //holder.item1 click listener not in onBindViewHolder
                //holder.item2 how to handle click listener not in OnBindViewHolder
            }
            @Override
            public ItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                return new ItemHolder(getLayoutInflater().from(parent.getContext()).inflate(R.layout.item, parent, false));
            }
            @Override
            public void onDataChanged() {
                //TO DO
            }
        };

我阅读了一些建议使用界面的教程。你能告诉我怎么做吗?带有一些示例代码或说明。

谢谢。

1 无论如何,你可以直接在 onBindViewHolder 中做到这一点:

holder.item1.setImageDrawable(item.getItem1());
holder.item2.setImageDrawable(item.getItem2());

2 要单击一个项目,您需要ClickListener.javaRecyclerTouchListener.java,您可以查看此博客。在您的活动中:

recyclerView.addOnItemTouchListener(new RecyclerTouchListener(this, recyclerView, new ClickListener() {
    @Override
     public void onClick(View view, int position) {
        //For CLICK
    }
    @Override
    public void onLongClick(View view, int position) {
    //For Long CLICK
    }
}));

在您的bindView方法中,就像执行所有标准视图操作一样简单...所以你会做这样的事情:

item1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        int position = getAdapterPosition();
        // TODO you
    }
}

相关内容

  • 没有找到相关文章

最新更新