ich wan eine OnClickListener zu einem CardView zu befestigen, also kann ich die ID aus der KarteIn der CardView OnClickListner und erhalten Daten
Ich habe einen RecyclerView erhalten, die für die Anzeige der Karten einen benutzerdefinierten Adapter. So ist es implementiert.
Ich versuchte andere Beispiele in Stackoverflow, aber es hat nicht funktioniert.
public class CardAdapter extends RecyclerView.Adapter<CardAdapter.ViewHolder> {
private ArrayList<Patient> patients;
Context mContext;
String idPatient;
public CardAdapter(ArrayList<Patient> patients) {
this.patients = patients;
}
@Override
public CardAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_card_view, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(CardAdapter.ViewHolder viewHolder, int i) {
viewHolder.first_name.setText(patients.get(i).getFirstName());
viewHolder.last_name.setText(patients.get(i).getLastName());
viewHolder.id_patient.setText(String.valueOf(patients.get(i).getId()));
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//trying to get ID From card
ViewGroup parentView = (ViewGroup)v.getParent();
TextView idpatientview =(TextView)parentView.findViewById(R.id.idViewPatient);
idPatient = idpatientview.getText().toString();
PreferencesHelper.save(mContext, "idPatient", idPatient);
Intent intent = new Intent(mContext, BluetoothActivity.class);
mContext.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return patients.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
private TextView first_name,last_name,id_patient;
public ViewHolder(View view) {
super(view);
first_name = (TextView)view.findViewById(R.id.textViewName);
last_name = (TextView)view.findViewById(R.id.textViewLastName);
id_patient = (TextView)view.findViewById(R.id.idViewPatient);
}
}
}
Mit der ID bekommen Sie die Position? –
@DavidSeroussi Nein, ich meine, ich bekomme die ID des Patienten von der Karte oder sogar seinen Namen, weil ich es in einer anderen Aktivität verwenden muss, ich bekomme die Daten von Restfull-Service übrigens. –
Ja, aber wie ich sehen kann, verwenden Sie eine ArrayList, um die Karte zu füllen, was bedeutet, wenn Sie die Position der Karte erhalten, können Sie sie als Index verwenden, um die Daten von dieser Karte –