首页 > 解决方案 > 从回收站视图中单击的项目中获取价值

问题描述

我有一个项目清单。这些数据是从 API 接收的,然后通过回收视图列出。这就是现在的样子:https ://imgur.com/a/h4mYXD6

当我在其中一个项目上按下心脏时,我想接收来自该特定项目的数据。我不确定如何做到这一点。现在我已经为心脏图标创建了一个监听器,但现在我被卡住了。我想获取包含名称、pictureURL 和过期日期的数据。

我有一个适配器,我在其中将我的数据与视图绑定。这是 onCreateViewHolder:

@Override
public FoodViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    //inflating and returning our view holder
    LayoutInflater inflater = LayoutInflater.from(mCtx);
    View view = inflater.inflate(R.layout.layout_food, parent, false);
    return new FoodViewHolder(view);
}

这是我的 OnBindViewHolder 方法:

@Override
public void onBindViewHolder(FoodViewHolder holder, int position) {
    //getting the product of the specified position
    Food food = foodList.get(position);

    holder.heart.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v){
            switch (v.getId()) {
                case R.id.heart:
//what code do i write here???
break;
            }
        }
    });

这是正确的方法吗?我从这里去哪里?

标签: androidandroid-recyclerviewandroid-viewholder

解决方案


要在侦听器中获取项目,您可以使用getAdapterPositionViewHolder:

Food clickedFood = foodList.get(holder.getAdapterPosition());

有关更多信息,请参阅文档:https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder.html#getAdapterPosition()

然后,您可以访问 的字段和方法clickedFood以获取特定的数据饼。


推荐阅读