Во-первых, давайте скажем, что я новичок в Android, и мой английский базовый, я могу понять ответы, но, возможно, мой способ написания не является обычным или правильным.
Итак, позвольте перейти к моему вопросу:
Я делаю проект для курса, и я сделал первый обзор рециклера с "домашними животными", у каждого домашнего животного есть кнопка, где вы можете давать "лайки", и эти "лайки" будут сохранены в текстовом представлении.
У меня есть второй обзор переработчика, похожий на первый, на этом втором будет показано 5 последних питомцев, которым я дал «лайки» в первом обзоре переработчика.
Мне нужно показать во втором обзоре переработчиков "лайки", которые я дал каждому питомцу в первом обзоре переработчиков. Как я могу это сделать? Как я могу получить эти данные в каждом элементе зрения переработчика? Нужен ли мне второй адаптер или другой arrayList?
Мой код работает отлично до того момента, как я пытаюсь получить данные, затем приложение падает, я пробовал много способов, но я не уверен, что я делаю неправильно. (У меня есть эти проблемы с просмотрами переработчика, я просто вижу, что это не то же самое, что я делал с другими видами деятельности, у которых не было обзора переработчика).
Ниже я дам вам несколько кодов:
Внутри onCreate в MainActivity.class
public void inicializarLista(){
mascotasList = new ArrayList<Mascotas>();
mascotasList.add(new Mascotas(R.drawable.loro,"Coti el loro"));
mascotasList.add(new Mascotas(R.drawable.hamster,"El Ghamster"));
mascotasList.add(new Mascotas(R.drawable.tortuga,"Turtle Ninja"));
mascotasList.add(new Mascotas(R.drawable.perro,"Mochi"));
mascotasList.add(new Mascotas(R.drawable.conejo,"Bonny"));
}
public MascotasAdapter adapter;
public void inicializarAdaptador(){
adapter = new MascotasAdapter(this, mascotasList);
mascotaRecycler.setAdapter(adapter);
}
public void cliclearBoton(){
ImageButton favoritas = findViewById(R.id.favoritasCinco);
favoritas.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView cantLikes = findViewById(R.id.tvCantidad);
String dlikes = cantLikes.getText().toString();
Intent i = new Intent(MainActivity.this, MascotasFavoritas.class);
i.putExtra("loslikes", dlikes);
startActivity(i);
}
});
}
Ниже моего onBindViewHolder в MascotaAdapter.class
public void onBindViewHolder(final MascotasViewHolder mascotasHolder, final int position) {
final Mascotas mascotasList = mascotas.get(position);
mascotasHolder.imFoto.setImageResource(mascotasList.getIvFoto());
mascotasHolder.textNombre.setText(mascotasList.getNombre());
mascotasHolder.ibDarLike.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(v,"Diste like a "+ mascotasList.getNombre(),Snackbar.LENGTH_SHORT).show();
int plusLike = Integer.parseInt(mascotasHolder.textCantidadLikes.getText().toString());
mascotasHolder.textCantidadLikes.setText(String.valueOf(plusLike + 1));
}
});
}
EjecutarAmpliar
А ниже функции у меня внутри onCreate в MascotaFavoritas.class, (здесь я хочу получить данные).
void inicializarFavoritas(){
favoritasList = new ArrayList<Mascotas>();
favoritasList.add(new Mascotas(R.drawable.perro,"Mochi"));
favoritasList.add(new Mascotas(R.drawable.conejo,"Bonny"));
favoritasList.add(new Mascotas(R.drawable.loro,"Coti el loro"));
favoritasList.add(new Mascotas(R.drawable.hamster,"El Ghamster"));
favoritasList.add(new Mascotas(R.drawable.tortuga,"Turtle Ninja"));
}
public MascotasAdapter adapter;
public void inicializarAdaptador(){
adapter = new MascotasAdapter(this, favoritasList);
favoritasRecycler.setAdapter(adapter);
}
public void recibirLikes(){
TextView receptorLikes = findViewById(R.id.tvCantidad);
Bundle parametros = this.getIntent().getExtras();
String datoLike = parametros.getString("loslikes");
receptorLikes.setText(datoLike);
}
Спасибо, ребята, если вы можете мне помочь, и извините за мой плохой способ писать по-английски. Я ценю вашу помощь.