Widoki RecyclerView i CardView
571
jesteś tutaj
Można nasłuchiwać zdarzeń z widoków w adapterze
Aby widok
RecyclerView
reagował na kliknięcia, trzeba uzyskać dostęp
do wyświetlanych w nim widoków. Wszystkie one są tworzone w adapterze.
W momencie wyświetlania widoku na ekranie
RecyclerView
wywołuje metodę
onBindViewHolder()
obiektu
CaptionedImagesAdapter
, aby dopasować widok
karty do szczegółów wybranego elementu listy.
Po kliknięciu jednej z kart pizz wyświetlonych w widoku
RecyclerView
chcemy
uruchomić aktywność
PizzaDetailActivity
i przekazać do niej pozycję klikniętej
pizzy. Oznacza to, że
moglibyśmy uruchamiać aktywność, umieszczając w adapterze
poniższy kod:
class CaptionedImagesAdapter extends
RecyclerView.Adapter<CaptionedImagesAdapter.ViewHolder>{
...
@Override
public void onBindViewHolder(ViewHolder holder, final int position){
final CardView cardView = holder.cardView;
ImageView imageView = (ImageView)cardView.findViewById(R.id.info_image);
Drawable drawable =
ContextCompat.getDrawable(cardView.getContext(), imageIds[position]);
imageView.setImageDrawable(drawable);
imageView.setContentDescription(captions[position]);
TextView textView = (TextView)cardView.findViewById(R.id.info_text);
textView.setText(captions[position]);
cardView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent(cardView.getContext(),
PizzaDetailActivity.class);
intent.putExtra(PizzaDetailActivity.EXTRA_PIZZA_ID, position);
cardView.getContext().startActivity(intent);
}
});
}
}
Jednak sam fakt, że moglibyśmy
zastosować takie rozwiązanie, nie
oznacza jeszcze, że powinniśmy
to robić.
Dodanie tego kodu pozwalałoby uruchamiać
aktywność PizzaDetailActivity po kliknięciu
widoku CardView.
Nie zmieniaj
jeszcze kodu
adaptera. To
tylko przykład.
app/src/main
CaptionedImages
Adapter.java
WloskieCoNieco
java
com.hfad.wloskieconieco
Można
by
odpowiadać na kliknięcia, dodając kod do klasy adaptera. Jednak czy potrafisz
wskazać powód, dla którego
nie chciałbyś
stosować takiego rozwiązania?
MOC
UMYSŁU
¨
Dane pizz
¨
Widok CardView
¨
Adapter
¨
Widok RecyclerView
¨
Kliknięcia
¨
Dane pizz
¨
Widok CardView
¨
Adapter
¨
Widok RecyclerView
¨
Kliknięcia
Get Android Programowanie aplikacji. Rusz głową! Wydanie II now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.