Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
JDaniel630

Problemas com CheckBox no RecyclerView em Android Studio

Recommended Posts

Galera sou novo no fórum e também no android, eu estou fazendo um app de animes para entregar como projeto na prova parcial da faculdade, e eu estou usando o RecyclerView para gerar os episódios dos animes, porém, quando eu rodo o app e clico por exemplo no checkbox do episodio 1 o episodio 11 também é clicado assim como o checkbox do 2 com 12, 3 com 13, como resolver isso ?

 

Meu Adapter:

package grcseries.com.br.grcseries.controle;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

import grcseries.com.br.grcseries.R;
import grcseries.com.br.grcseries.variaveis.Catalogo;

public class TelaAnimesAdapterSecundaria extends RecyclerView.Adapter {
    private final List<Catalogo> lista;
    private final Context contexto;

    public TelaAnimesAdapterSecundaria(ArrayList<Catalogo> lista, Context contexto) {
        this.lista = lista;
        this.contexto = contexto;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(contexto).inflate(R.layout.layout_episodio, parent,false);
        return new TelaAnimesHolderSecundaria(view);
    }

    @Override
    public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
        final TelaAnimesHolderSecundaria hd2 = (TelaAnimesHolderSecundaria) holder;
        final int pos = position;
        //position = position + 1;
        //hd2.ckbEpisodio.setText("Episódio " + position);

        hd2.ckbEpisodio.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                CheckBox cb = (CheckBox) v;
                Catalogo contact = (Catalogo) cb.getTag();

                contact.setSelected(cb.isChecked());
                lista.get(pos).setSelected(cb.isChecked());

                Toast.makeText(v.getContext(), "Clicked on Checkbox: " + cb.getText() + " is " + cb.isChecked(), Toast.LENGTH_LONG).show();
            }
        });
    }

    @Override
    public int getItemCount() {
        return (lista!=null)?lista.size():0;
    }

}

 

Meu Holder:

package grcseries.com.br.grcseries.controle;

import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import grcseries.com.br.grcseries.R;

public class TelaAnimesHolderSecundaria extends RecyclerView.ViewHolder {

    final ImageView imgCapa;
    final TextView txtTitulo;
    final TextView txtSinopse;
    final TextView txtTemporada;
    final CheckBox ckbEpisodio;

    public TelaAnimesHolderSecundaria(View itemView) {
        super(itemView);

        imgCapa = (ImageView) itemView.findViewById(R.id.imgCapa);
        txtTitulo = (TextView) itemView.findViewById(R.id.txtTitulo);
        txtSinopse = (TextView) itemView.findViewById(R.id.txtSinopse);
        txtTemporada = (TextView) itemView.findViewById(R.id.txtTemporada);
        ckbEpisodio = (CheckBox) itemView.findViewById(R.id.ckbEpisodio);
    }
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está sendo gerado os IDs dos episódios? O que faz a classe R?

 

Talvez algo de errado com os valores de Catalogo?

 

Depurando o click em um checkbox, você vai saber o que ocorre para que mais de um checkbox seja marcado ao mesmo tempo. O erro (pelo menos não achei nada aqui, já que eu brinco pouquíssimo com Android) deve estar em outra ou outras classes.

Editado por TwistedSoul

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×