Reputation: 85
I have to get details when customer clicked cardview but isn't shown the data in my activity.
This is My code:
public void onBindViewHolder(MenuItemViewHolder holder, int position) {
final int _index = position;
holder.iBookingRef.setText(itemList.get(position).getBookingID());
holder.iClientName.setText(itemList.get(position).getDelegeteName());
holder.iHotelName.setText(itemList.get(position).getHotelName());
holder.layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(context, ArrivalsActivity.class);
intent.putExtra("BookingID", itemList.get(_index).getBookingID());
intent.putExtra("DelegeteName", itemList.get(_index).getDelegeteName());
intent.putExtra("HotelName", itemList.get(_index).getHotelName());
context.startActivity(intent);
}
});
}
Upvotes: 0
Views: 333
Reputation: 9225
create an Interface inside your adapter containing methods. And while implementing your Adapter, those methods will be implemented in your activity and you can perform whatever action you want.
public class Adapter extends RecyclerView.Adapter<MyRecycleViewHolder> {
public interface Callbacks {
public void onButtonClicked(String titleKey);
}
private Callbacks mCallbacks;
public Adapter() {
}
@Override
public MyRecycleViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.layout_details, null);
return new MyRecycleViewHolder(v);
}
@Override
public void onBindViewHolder(final MyRecycleViewHolder holder, final int i) {
holder.ExpandButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mCallbacks != null) {
mCallbacks.onButtonClicked(holder.ProbTitle.getText().toString());
}
}
});
}
@Override
public int getItemCount() {
return;
}
public void setCallbacks(Callbacks callbacks) {
this.mCallbacks = callbacks;
}
}
OR
you may try do this on your onItemClick()
Intent i = new Intent(view.getContext(), DetailsActivity.class);
i.putExtra("title", yourTitle);
i.putExtra("description", yourDescription);
view.getContext().startActivity(i);
and when oncreate in your DetailActivity,do this
String title = getIntent().getStringExtra("title");
String description = getIntent().getStringExtra("description");
so you can pass title and description to DetailActivity
Upvotes: 1