OnClickListener in RecyclerView and Card View?

ساخت وبلاگ

Vote count: 0

i am coding an Android App to register and save food recipes in a database. I did this with Firebase, so i have a realtime database.

For the Recipes I have a RecyclerView with a CardView in it. So all the Recipces are in this RecyclerView. When a Recipe e.g a CardView Objekt is touched/clicked, it should open a new Activity, give it the Object from the Firebase Database (json tree) and the hole recipe should be shown there.

I tried many different ways found in the internet but none of them worked out for me, so now i am asking here.

Whats to implement that a touch/click is registered and starts an activity with the clicked object in it?

Here my Code:

ListActivity.java

public class ListActivity extends Activity implements View.OnClickListener {
private static final String TAG = "ListActivity";
FloatingActionButton floatingActionButton;
public static class MessageViewHolder extends RecyclerView.ViewHolder{ public TextView rezeptName; public TextView rezeptUntertitel; public MessageViewHolder(View v){ super(v); rezeptName = (TextView) itemView.findViewById(R.id.rezeptTextView); rezeptUntertitel = (TextView) itemView.findViewById(R.id.rezeptuntertitelTextView); }
}
private RecyclerView mRezepteRecyclerView;
private LinearLayoutManager mLinearLayoutManager;
private DatabaseReference mFirebaseDatabaseReference;
private FirebaseRecyclerAdapter mFirebaseAdapter;
public Context context;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); floatingActionButton = (FloatingActionButton) findViewById(R.id.floatingActionButton); floatingActionButton.setOnClickListener(this); mRezepteRecyclerView = (RecyclerView) findViewById(R.id.RezeptRecyclerView); mLinearLayoutManager = new LinearLayoutManager(this); mLinearLayoutManager.setStackFromEnd(true); mRezepteRecyclerView.setLayoutManager(mLinearLayoutManager); mFirebaseDatabaseReference = FirebaseDatabase.getInstance().getReference(); mFirebaseAdapter = new FirebaseRecyclerAdapter( Rezept.class, R.layout.item_rezept, MessageViewHolder.class, mFirebaseDatabaseReference.child("rezepte")) { @Override protected void populateViewHolder(MessageViewHolder viewHolder, Rezept model, int position) { viewHolder.rezeptName.setText(model.getName()); viewHolder.rezeptName.setVisibility(TextView.VISIBLE); viewHolder.rezeptUntertitel.setText(model.getUntertitel()); viewHolder.rezeptUntertitel.setVisibility(TextView.VISIBLE); } }; mFirebaseAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver(){ @Override public void onItemRangeInserted(int positionStart, int itemCount){ super.onItemRangeInserted(positionStart, itemCount); int rezeptCount = mFirebaseAdapter.getItemCount(); int lastVisiblePosition = mLinearLayoutManager.findLastCompletelyVisibleItemPosition(); if (lastVisiblePosition == -1 || (positionStart >= (rezeptCount - 1) && lastVisiblePosition == (positionStart - 1))) { mRezepteRecyclerView.scrollToPosition(positionStart); } } }); mRezepteRecyclerView.setLayoutManager(mLinearLayoutManager); mRezepteRecyclerView.setAdapter(mFirebaseAdapter);,>,>

activity_list.xml

item_rezept.xml

Rezept.java (recipe class)

 package bme.ohmhochschule.de.tasteit;
public class Rezept { private String name; private String untertitel; private String zutaten; private String beschreibung; private String dauer; private String schwierigkeit; private float wertung; public Rezept(float wertung, String name, String zutaten, String untertitel, String schwierigkeit, String beschreibung, String dauer) { this.name = name; this.untertitel = untertitel; this.zutaten = zutaten; this.beschreibung = beschreibung; this.dauer = dauer; this.schwierigkeit = schwierigkeit; this.wertung = wertung; } public Rezept(){}; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getUntertitel() { return untertitel; } public void setUntertitel(String untertitel) { this.untertitel = untertitel; } public String getZutaten() { return zutaten; } public void setZutaten(String zutaten) { this.zutaten = zutaten; } public String getBeschreibung() { return beschreibung; } public void setBeschreibung(String beschreibung) { this.beschreibung = beschreibung; } public String getDauer() { return dauer; } public void setDauer(String dauer) { this.dauer = dauer; } public String getSchwierigkeit() { return schwierigkeit; } public void setSchwierigkeit(String schwierigkeit) { this.schwierigkeit = schwierigkeit; } public float getWertung() { return wertung; } public void setWertung(float wertung) { this.wertung = wertung; }
}

i am thankful for any help, thank you

asked 1 min ago

back soft...
ما را در سایت back soft دنبال می کنید

برچسب : نویسنده : استخدام کار backsoft بازدید : 254 تاريخ : چهارشنبه 23 فروردين 1396 ساعت: 19:20