我试图将此RecyclerAdapter
之间的数据传递给DetailsActivity,此时用户单击每个项目,获取项目position
,然后例如获取标题recyclerView
并显示到MainRecyclerDetails
TextView
,这里是我的尝试:如何将RecyclerViewAdapter之间的数据传递到具有onClick的详细信息活动
public class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerAdapter.FeedListRowHolder> {
private List<FeedItem> feedItemList;
private Context mContext;
public MyRecyclerAdapter(Context context, List<FeedItem> feedItemList) {
this.feedItemList = feedItemList;
this.mContext = context;
}
@Override
public FeedListRowHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_row, null);
return new FeedListRowHolder(v);
}
@Override
public void onBindViewHolder(FeedListRowHolder feedListRowHolder, int i) {
FeedItem feedItem = feedItemList.get(i);
Picasso.with(mContext).load(feedItem.getThumbnail())
.error(R.drawable.placeholder)
.placeholder(R.drawable.placeholder)
.into(feedListRowHolder.thumbnail);
feedListRowHolder.title.setText(Html.fromHtml(feedItem.getTitle()));
feedListRowHolder.date.setText(Html.fromHtml(feedItem.getDate()));
feedListRowHolder.tags.setText(Html.fromHtml(feedItem.getTags()));
feedListRowHolder.thumbnail.setOnClickListener(clickListener);
feedListRowHolder.title.setOnClickListener(clickListener);
feedListRowHolder.date.setOnClickListener(clickListener);
feedListRowHolder.tags.setOnClickListener(clickListener);
feedListRowHolder.thumbnail.setTag(feedListRowHolder);
feedListRowHolder.title.setTag(feedListRowHolder);
feedListRowHolder.date.setTag(feedListRowHolder);
feedListRowHolder.tags.setTag(feedListRowHolder);
}
@Override
public int getItemCount() {
return (null != feedItemList ? feedItemList.size() : 0);
}
View.OnClickListener clickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
FeedListRowHolder holder = (FeedListRowHolder) view.getTag();
int position = holder.getAdapterPosition();
FeedItem feedItem = feedItemList.get(position);
Toast.makeText(mContext, feedItem.getTitle(), Toast.LENGTH_SHORT).show();
Intent i = new Intent(mContext, MainRecyclerDetails.class);
String getrec = feedItem.getTitle();
Bundle bundle = new Bundle();
bundle.putString("title", getrec);
i.putExtras(bundle);
startActivity(i);
}
};
class FeedListRowHolder extends RecyclerView.ViewHolder {
protected ImageView thumbnail;
protected TextView title;
protected TextView date;
protected TextView tags;
public FeedListRowHolder(View view) {
super(view);
this.thumbnail = (ImageView) view.findViewById(R.id.thumbnail);
this.title = (TextView) view.findViewById(R.id.title);
this.date = (TextView) view.findViewById(R.id.date);
this.tags = (TextView) view.findViewById(R.id.tagsItems);
}
}
}
得到它在DetailsActivity
:
Bundle bundle = getIntent().getExtras();
String title = bundle.getString("title");
但是,它不工作。
我在做什么错?
干杯!
哪里是你'OnClickListener'实现这样
?检查是否[this](http://stackoverflow.com/questions/29107110/listview-getitematpositioni-equivalent-in-recyclerview/29107243#29107243)帮助 – Blackbelt
@Blackbelt - 这一个?:'View.OnClickListener clickListener = new View。 OnClickListener()' – mandev
我完全错过了。怎么了 ?是fDetailsActivity和MainRecyclerDetails相同的活动? – Blackbelt