从适配器到活动获取适配器值

时间:2018-09-27 14:04:19

标签: android android-adapter

我有如下所示的适配器类,其接口包含onclick侦听器。

public interface OnFeedItemClickListener {
    void onCommentsClick(View v, int position);

    void onMoreClick(View v, int position);

    void onProfileClick(View v);
}

在我的活动类中,当我实现其有效的方法之一时。

@Override
public void onProfileClick(View v) {
    int[] startingLocation = new int[2];
    v.getLocationOnScreen(startingLocation);
    startingLocation[0] += v.getWidth() / 2;
    UserProfileActivity.startUserProfileFromLocation(startingLocation, this);
    overridePendingTransition(0, 0);
}

我需要帮助,将某件物品从适配器中拿到活动中并显示

这是我的onViewBinder类

@Override
public void onBindViewHolder(@NonNull FeedAdapter.CellFeedViewHolder viewHolder, final int position) {
    viewHolder.bindView(feedItems.get(position));


    FeedItem item = feedItems.get(position);

    //Making up the feed
    viewHolder.name.setText(item.getName());

2 个答案:

答案 0 :(得分:0)

  

我需要帮助,以将物品从适配器转到活动中,并且   显示它

在您的onBindViewHolder()中,就像已经在做的一样,您可以通过item.getName()来获取商品的名称。

这将设置您的viewHolder.name的名称。因此,要获取和设置其他项目,您需要自定义list_item,然后在ViewHolder中声明这些项目,然后在onBindViewHolder()中进行设置。

但是现在要指出的是,它应该在name中的项目上显示Activity

答案 1 :(得分:0)

如果我正确理解了您的问题,那么您希望将点击的object传递回您的活动。在这种情况下,只需在回调中传递它即可,例如:

public interface OnFeedItemClickListener {
   void onCommentsClick(View v, FeedItem item);

   void onMoreClick(View v, FeedItem item);

   void onProfileClick(View v, FeedItem item);
}

因此,除了位置以外,您还可以直接传递与单击的行相关的对象,并使用所需的信息检索/显示/执行所需的操作。