Laden ein fragment auf einen Klick CardView von RecyclerView
Habe ich eine RecyclerView
und CardView
drin. Nun, was ich will zu tun ist, laden Sie eine einfache Fragment
Klick auf den CardView. Ich bin nicht in der Lage, das zu tun, mit FragmentManager oder SupportFragmentManager. Bitte geben Sie mir einige Anweisungen.
Meine RecyclerViewAdapder und ViewHolder sind ..
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
private String[] eventName;
private String[] eventBrief;
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView textViewName, textViewBrief;
public CardView cardView;
public ViewHolder(View v) {
super(v);
textViewName = (TextView)v.findViewById(R.id.textViewName);
textViewBrief = (TextView)v.findViewById(R.id.textViewBrief);
final Context context = v.getContext();
cardView = (CardView)v.findViewById(R.id.card_view);
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EventFragment eventFragment = EventFragment.newInstance();
//Load and view eventFragment here??
}
});
}
}
public RecyclerViewAdapter(String[] eventName, String[] eventBrief) {
this.eventName = eventName;
this.eventBrief = eventBrief;
}
@Override
public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.my_card_view, parent, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.textViewName.setText(eventName[position]);
holder.textViewBrief.setText(eventBrief[position]);
}
@Override
public int getItemCount() {
return eventName.length;
}
}
InformationsquelleAutor priyank | 2015-03-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es viele Möglichkeiten, um zu gehen, wirklich. Ich fühle, dass die beste Umsetzung ist ein callback, um die Aktivität der Benachrichtigung, dass ein Element angeklickt wurde. Ich gebe Ihnen eine hand mit einigen code:
}
Dann in Ihrer Aktivität nur instanziieren es so:
InformationsquelleAutor jvrodrigues
Einfache Anwendung ist das hinzufügen einer
onClickListener()
zu denViewHolder
'sitemView
im Konstruktor derAdapter
.schließlich fand die Antwort hier.. danke
was ist
Fragment myFragment = new MyFragment();
?MyFragment
ist die fragment-Klasse des fragments, den Sie laden möchten @sabbibJAVASie können sehen, meine Umsetzung hier github.com/martiendt/daily-dhamma habe ich diese auf github.com/martiendt/daily-dhamma/blob/master/app/src/main/java/...
InformationsquelleAutor viper
Weil
RecyclerViewAdapter
nicht halten eine Referenz auf dasFragmentManager
. Sollten Sie kommunizieren, um die Aktivität/Fragment hosting derRecyclerView
, dass das Ereignis aufgetreten ist, und von dort start das fragment. Zu tun, also überprüfen Sie meine Antwort hierInformationsquelleAutor Blackbelt