MusicAdapter class implements RecyclerView and when clicked, passes an object of the Music class through the activity intent Description , Description "parsit" The object and stuffs its fields on the views, to be more correct, then the fragment of the musicList collection
public class MusicAdapter extends RecyclerView.Adapter<com.example.paulr.tryingtoadaptrecyclerview.MusicAdapter.MusicVH> { List<Music> musicList; private Context context; public MusicAdapter(List<Music> musicList) { this.musicList = musicList; } public MusicAdapter(Context context) { this.context = context; } @NonNull @Override public MusicVH onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { LayoutInflater inflater = LayoutInflater.from(viewGroup.getContext()); View view = inflater.inflate(R.layout.nice_artist, viewGroup, false); return new MusicVH(view); } @Override public void onBindViewHolder(@NonNull final MusicVH musicVH, final int i) { final Music music = musicList.get(i); musicVH.albumImage.setImageResource(music.getAlbunImageId()); musicVH.artist.setText(music.getArtist()); musicVH.description.setText(music.getMusic()); musicVH.artistCard.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { musicList.remove(i); notifyItemRemoved(i); notifyItemChanged(i); return false; } }); musicVH.artistCard.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(musicVH.itemView.getContext(), Description.class); intent.putExtra("musicObject", music); v.getContext().startActivity(intent); } }); } @Override public int getItemCount() { return musicList.size(); } class MusicVH extends RecyclerView.ViewHolder implements Serializable{ private ImageView albumImage; private TextView artist; private TextView description; private CardView artistCard; public MusicVH(@NonNull View itemView, ImageView albumImage, TextView artist, TextView description) { super(itemView); this.albumImage = albumImage; this.artist = artist; this.description = description; } public MusicVH(@NonNull View itemView) { super(itemView); albumImage = itemView.findViewById(R.id.albumImage); artist = itemView.findViewById(R.id.artistName); description = itemView.findViewById(R.id.artistDescription); artistCard = itemView.findViewById(R.id.musicCard); } } } Music class
public class Music implements Serializable { private String artist; private String music; private int albunImageId; public Music(String artist, String music, int albunImageId) { this.artist = artist; this.music = music; this.albunImageId = albunImageId; } public Music(Object name) { } public String getArtist() { return artist; } public void setArtist(String artist) { this.artist = artist; } public String getMusic() { return music; } public void setMusic(String music) { this.music = music; } public int getAlbunImageId() { return albunImageId; } public void setAlbunImageId(int albunImageId) { this.albunImageId = albunImageId; } } Description Activity
public class Description extends AppCompatActivity { private ImageView albumImageV; private TextView artistV; private TextView descriptionV; private Music music; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_description); Intent intent = new Intent(); music = (Music) intent.getSerializableExtra("musicOblect"); albumImageV = findViewById(R.id.ImageDes); artistV = findViewById(R.id.artistDes); descriptionV = findViewById(R.id.DesDes); If you uncomment the lines below, the application will crash during the transition attempt
//artistV.setText(music.getArtist()); // albumImageV.setImageResource(music.getAlbunImageId()); // descriptionV.setText(music.getMusic()); } } If you need a Log, I can attach, just to know which part, otherwise everything is red.
albumImageV, artistV, descriptionV- null. All or one of them. Carefully check the markup, and make sure that you do not mess it up in the ID view. - Yuriy SPb ♦ pm