How To Get Item Position For Recycle-view
I'm an Android programmer, I'm developing a news app using RSS feed that get the the news from the web, my code work fine ! but I wont when I click on any news to open new activity
Solution 1:
I'm not sure that I understand you. But to check when a user clicks a news, you have to add the following code to your FeedsAdapter
@OverridepublicvoidonBindViewHolder(MyViewHolder holder, finalint position) {
holder.itemView.setOnClickListener(newView.OnClickListener() {
@OverridepublicvoidonClick(View view) {
FeedItemitem= feedItems.get(position);
//start your activity here
}
});
//other code
}
Solution 2:
So you can use a Callback interface to pass the data like
interfaceDisplayNews{
voidnewsDetail(int position);// any name as per your requirement
}
Then implement that interface in your base activity/fragment like
classNewsActivityimplementsDisplayNews{
@OverridevoidnewsDetail(int position){
// get your list item/element from list using postion and pass that into intent to new activity
}
}
And in your adapter change the adapter contractor and some tiny code like
publicclassFeedsAdapterextendsRecyclerView.Adapter<FeedsAdapter.MyViewHolder> {
ArrayList<FeedItem>feedItems;
Context context;
private DisplayNews callback;
publicFeedsAdapter(Context context, ArrayList<FeedItem>feedItems,DisplayNews callback){
this.feedItems=feedItems;
this.context=context;
this.callback=callback;
}
@Overridepublic MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(context).inflate(R.layout.custum_row_news_item,parent,false);
MyViewHolder holder=newMyViewHolder(view);
return holder;
}
@OverridepublicvoidonBindViewHolder(MyViewHolder holder, int position) {
YoYo.with(Techniques.FadeIn).playOn(holder.cardView);
FeedItem current=feedItems.get(position);
holder.Title.setText(current.getTitle());
holder.Description.setText(current.getDescription());
holder.Date.setText(current.getPubDate());
Picasso.with(context).load(current.getThumbnailUrl()).into(holder.Thumbnail);
holder.itemView.setOnClickListener(view -> callback.newsDetail(holder.getAbsoluteAdapterPosition());
}
@OverridepublicintgetItemCount() {
return feedItems.size();
}
publicclassMyViewHolderextendsRecyclerView.ViewHolder {
TextView Title,Description,Date;
ImageView Thumbnail;
CardView cardView;
publicMyViewHolder(View itemView) {
super(itemView);
Title= (TextView) itemView.findViewById(R.id.title_text);
Description= (TextView) itemView.findViewById(R.id.description_text);
Date= (TextView) itemView.findViewById(R.id.date_text);
Thumbnail= (ImageView) itemView.findViewById(R.id.thumb_img);
cardView= (CardView) itemView.findViewById(R.id.cardview);
}
}
,,,
Post a Comment for "How To Get Item Position For Recycle-view"