Lista retornando valores nulos

  • Respostas:0
Luis Felipe
  • Posts no fórum: 7

09/11/2018, 11:12:49 via Web

Eu estou fazendo uma listagem de item, nessa listagem eu trago as seguintes informações id, idPostagem, descrição, nomeUsuario e fotoUsuario.

Logo apos setar o valores, eu verifiquei eles e estou todos exibindo corretamente, porem quando tento exibir ele mostra como nulo os seguintes campos id, idPostagem, descrição e fotoUsuario.

Alguém sabe onde eu posso estar errando e por que quando eu testo através do Toast, logo depois de setar os valores, eles estão corretos e quando puxo com get eles aparecem como nulos?

Setagem de valores:

final ItemSalvo itemSalvo = new ItemSalvo();
itemSalvo.setId(feed.getId());
itemSalvo.setDescricao(feed.getDescricao());
itemSalvo.setFotoPostagem(feed.getFotoPostagem());
itemSalvo.setFotoUsuario(feed.getFotoUsuario());
itemSalvo.setNomeUsuario(feed.getNomeUsuario());

Log.i("Teste get: ", "Descrição - " + itemSalvo.getDescricao());
Log.i("Teste get: ", "Foto postagem - " + itemSalvo.getFotoPostagem());
Log.i("Teste get: ", "Foto usuario - " + itemSalvo.getFotoUsuario());
Log.i("Teste get: ", "Id - " + itemSalvo.getId());
Log.i("Teste get: ", "Nome - " + itemSalvo.getNomeUsuario());

Resultado do Log quando eu estou setando os valores:

I/Test set:: Descrição - teste da descrição
I/Test set:: Foto postagem - Caminho correto da foto postagem. 
I/Test set:: Foto usuario - Caminho correto da foto usuario. 
I/Test set:: Id - -LQYYTzgsU--x9Pj6vle
I/Test set:: Nome - USUARIO

quando eu testo os mesmo valores no adapter apps recuperar:

I/Test get:: Descrição - null
I/Test get:: Foto postagem - null
I/Test get:: Foto usuario - null
I/Test get:: Id - null
I/Test get:: Nome - USUARIO

Estrutura do firebase:

image

Activity:

public class ItensSalvosActivity extends AppCompatActivity {

    private Toolbar toolbar;
    private RecyclerView recyclerItensSalvos;
    private ItensSalvosAdapter itensSalvosAdapter;
    private List<ItemSalvo> listaItemSalvo = new ArrayList<>();
    private ValueEventListener valueEventListenerItensSalvos;
    private DatabaseReference itensSalvosRef;
    private String idUsuarioLogado;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_itens_salvos);

        idUsuarioLogado = Base64Custom.codificarBase64(UsuarioFirebase.getIdentificadorUsuario());

        itensSalvosRef = ConfiguracaoFirebase.getFirebase().child("itens-salvos").child(idUsuarioLogado);

        toolbar = (Toolbar) findViewById(R.id.tb_itens);
        toolbar.setTitle("Itens salvos");
        setSupportActionBar(toolbar);

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        recyclerItensSalvos = findViewById(R.id.recyclerItensSalvos);

        itensSalvosAdapter = new ItensSalvosAdapter(listaItemSalvo, ItensSalvosActivity.this);
        recyclerItensSalvos.setHasFixedSize(true);
        recyclerItensSalvos.setLayoutManager(new LinearLayoutManager(ItensSalvosActivity.this));
        recyclerItensSalvos.setAdapter(itensSalvosAdapter);

    }

    private void listarItensSalvos() {

        valueEventListenerItensSalvos = itensSalvosRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                listaItemSalvo.clear();

                for(DataSnapshot ds : dataSnapshot.getChildren()){

                    listaItemSalvo.add(ds.getValue(ItemSalvo.class));

                }

                Collections.reverse(listaItemSalvo);
                itensSalvosAdapter.notifyDataSetChanged();

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

    }

    @Override
    protected void onStart() {
        super.onStart();
        listarItensSalvos();
    }

    @Override
    protected void onStop() {
        super.onStop();
        itensSalvosRef.removeEventListener(valueEventListenerItensSalvos);
    }
}

Adapter:

    public class ItensSalvosAdapter extends RecyclerView.Adapter<ItensSalvosAdapter.MyViewHolder>    {

    private List<ItemSalvo> listaItemSalvo;
    private Context context;

    public ItensSalvosAdapter(List<ItemSalvo> listaItemSalvo, Context context) {
        this.listaItemSalvo = listaItemSalvo;
        this.context = context;
    }


    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View itemLista = LayoutInflater.from(parent.getContext()).inflate(R.layout.lista_itens_salvos, parent, false);
        return new ItensSalvosAdapter.MyViewHolder(itemLista);

    }

    @Override
    public void onBindViewHolder(@NonNull final ItensSalvosAdapter.MyViewHolder holder, int position) {

        //Dando null - Descricao, FotoPerfil, FotoPostagem,
        //recupera ItemSalvo atual pela posicao
        final ItemSalvo itemSalvo = listaItemSalvo.get(position);
        final Usuario usuarioLogado = UsuarioFirebase.getDadosUsuarioLogado();

          //Fazer verificacão de caso n tenha foto, aparecer drawable avatar
        if (itemSalvo.getFotoUsuario().isEmpty()) {

            //setar a imagem avatar como subistituta
            holder.imageFotoPerfilItensSalvos.setImageResource(R.drawable.avatar);

        } else {

            Uri uriFotoUsuario = Uri.parse(itemSalvo.getFotoUsuario());
            Glide.with(context).load(uriFotoUsuario).into(holder.imageFotoPerfilItensSalvos);

        }

        holder.textNomeItensSalvos.setText(itemSalvo.getNomeUsuario());

          //Fazer a verificacao de caso n tenha descricao, aparecer o texto programado
        if (itemSalvo.getDescricao().isEmpty()){

            holder.textDescricaoItensSalvos.setText("Publicação de " + itemSalvo.getNomeUsuario() + " salva!");

        }else {

            holder.textDescricaoItensSalvos.setText(itemSalvo.getDescricao());

        }

        Uri uriFotoPostagem = Uri.parse(itemSalvo.getFotoPostagem());
        Glide.with(context).load(uriFotoPostagem).into(holder.imageViewFotoPostagem);

    }

    @Override
    public int getItemCount() {
        return listaItemSalvo.size();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {

        ImageView imageViewFotoPostagem;
        CircleImageView imageFotoPerfilItensSalvos;
        TextView textNomeItensSalvos, textDescricaoItensSalvos;

        public MyViewHolder(View itemView) {

            super(itemView);

                imageViewFotoPostagem = itemView.findViewById(R.id.imageViewFotoPostagem);
                imageFotoPerfilItensSalvos = itemView.findViewById(R.id.imageFotoPerfilItensSalvos);
                textNomeItensSalvos = itemView.findViewById(R.id.textNomeItensSalvos);
                textDescricaoItensSalvos = itemView.findViewById(R.id.textDescricaoItensSalvos);
        }

    }
}

Model:

    public class ItemSalvo {

    private String id;
    private String fotoPostagem;
    private String descricao;
    private String nomeUsuario;
    private String fotoUsuario;

    public ItemSalvo() {
    }

    public String getFotoPostagem() {
        return fotoPostagem;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setFotoPostagem(String fotoPostagem) {
        this.fotoPostagem = fotoPostagem;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;

    }

    public String getNomeUsuario() {

        return nomeUsuario;

    }

    public void setNomeUsuario(String nomeUsuario) {
        this.nomeUsuario = nomeUsuario;
    }

    public String getFotoUsuario() {
        return fotoUsuario;
    }

    public void setFotoUsuario(String fotoUsuario) {
        this.fotoUsuario = fotoUsuario;
    }

}
Seja o primeiro a responder