Как получить данные в обзоре переработчика из другого обзора переработчика? - PullRequest
0 голосов
/ 08 мая 2018

Во-первых, давайте скажем, что я новичок в 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);
    }

Спасибо, ребята, если вы можете мне помочь, и извините за мой плохой способ писать по-английски. Я ценю вашу помощь.

1 Ответ

0 голосов
/ 20 июня 2018

Из того, что я понимаю из вашего вопроса. Я правильно понимаю, что эти два окна предназначены для разных видов деятельности. Если это так, вы можете передать данные из представления переработчика в новое действие, где вы можете установить данные просмотра в соответствии с тем, что вы получили из последнего действия. Теперь, поскольку тип данных, которые используют оба представления переработчика, различен. Вам нужно использовать два отдельных вида переработчика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...