Co zasadniczo próbuję zrobić, to sprawić, że obiekty wyświetlane w widoku recyklera będą klikalne dla określonego identyfikatora TextView, ponieważ robię program, który pokazuje okładkę albumu i jego tytuł obok niej na liście. Muszę umieć kliknąć każde z pól, które robi widok recyklera, i wyświetlić tekst z innymi informacjami (autor, opublikowana data, hit piosenki, itp.) Po kliknięciu, a następnie przycisku wstecz (jeśli możliwe), aby powrócić do listy albumów. Patrzę na to od wielu godzin i nie mogę wymyślić, jak zrobić dla niego narzędzie OnclickListener. Jeśli wiesz, jak lub masz jakieś sugestie, ciesz się, że je słyszysz. Dziękuję Ci!Jak korzystać z OnClickListener w widoku recyklera?
package com.albumlist.albumlist;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private AlbumData[] itemsData;
public MyAdapter(AlbumData[] itemsData){
this.itemsData = itemsData;
}
public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TextView txtViewTitle;
private ImageView imgViewIcon;
public ViewHolder(View itemLayoutView) {
super(itemLayoutView);
itemLayoutView.setOnClickListener(this);
txtViewTitle = (TextView) itemLayoutView.findViewById(R.id.album_title);
imgViewIcon = (ImageView) itemLayoutView.findViewById(R.id.album_icon);
}
@Override
public void onClick(View v) {
}
}
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,int viewType) {
View itemLayoutView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.data_layout, null);
ViewHolder viewHolder = new ViewHolder(itemLayoutView);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
viewHolder.txtViewTitle.setText(itemsData[position].getTitle());
viewHolder.imgViewIcon.setImageResource(itemsData[position].getImageUrl());
}
@Override
public int getItemCount() {
return itemsData.length;
}
}
ustawić click słuchacza wewnątrz uchwytu widoku. Zdefiniuj interfejs nasłuchiwania i przeprowadź go najpierw do 'Adapter', a następnie do' ViewHolder' w 'onCreateViewHolder'. Obsługa kliknięć odbywa się dokładnie w taki sam sposób jak w 'ListView'. Nawet przed 'RecyclerView' nie powinieneś używać callbacków' OnItemClickListener' z 'ListView', dlatego' RecyclerView' już ich nie ma. –