Tôi đã có RecyclerView.ViewHolder và RecyclerView.Adapter, tôi cần sau khi nhấp vào mục và sau đó gửi thông tin về mục này đến một mục khác Activity
.onClickListener trong RecyclerView.ViewHolder
PlacesAdapter.java
public class PlacesAdapter extends RecyclerView.Adapter<PlacesViewHolder> {
private PlacesActivity placesActivity;
Context context;
private int position;
List<Places> places;
public PlacesAdapter(List<Places> places) {
this.places = places;}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
@Override
public PlacesViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.places_view, viewGroup, false);
PlacesViewHolder pvh = new PlacesViewHolder(v);
return pvh;
}
@Override
public void onBindViewHolder(PlacesViewHolder personViewHolder, int i) {
personViewHolder.name.setText(places.get(i).name);
personViewHolder.address.setText(places.get(i).address);
Picasso.with(personViewHolder.itemView.getContext())
.load(places.get(i).photo)
.into(personViewHolder.getPhoto());
}
@Override
public int getItemCount() {
return places.size();
}
}
PlacesViewHolder.java
Trong dòng này "intent.putExtra(PlacesDetail.PLACES_NAME,);"
Làm thế nào tôi có thể gửi tên?
public class PlacesViewHolder extends RecyclerView.ViewHolder {
CardView cv;
public TextView name;
public TextView address;
public ImageView photo;
public PlacesViewHolder(final View itemView) {
super(itemView);
cv = (CardView)itemView.findViewById(R.id.cv);
name = (TextView)itemView.findViewById(R.id.person_name);
address = (TextView)itemView.findViewById(R.id.person_age);
photo = (ImageView)itemView.findViewById(R.id.person_photo);
itemView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Context context = v.getContext();
Intent intent = new Intent(context, PlacesDetail.class);
intent.putExtra(PlacesDetail.PLACES_NAME,);
context.startActivity(intent);
}
});
}
public TextView getAddress() {
return address;
}
public TextView getName() {
return name;
}
public ImageView getPhoto() {
return photo;
}
}
một cách đơn giản 'nơi 'mục dưới dạng trường vào trình xem. –
Cách khác là lấy vị trí mục từ trình xem và nhận mục từ các địa điểm –
sử dụng chế độ xem thẻ sau đó nhận giá trị trên thẻViewView.setOnClickListener (Chế độ xem mới.OnClickListener() và vượt qua các giá trị thông qua sharedpreference hoặc ý định bất cứ điều gì bạn muốn –