我有如下所示的适配器类,其接口包含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());
答案 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);
}
因此,除了位置以外,您还可以直接传递与单击的行相关的对象,并使用所需的信息检索/显示/执行所需的操作。