Список, возвращающий нулевые значения - PullRequest
0 голосов
/ 07 ноября 2018

Я делаю список элементов, в этот список я добавляю следующую информацию id, idPostagem, descrição, nomeUsuario и fotoUsuario.

Сразу после установки значений я проверил их, и все они отображаются правильно, но когда я пытаюсь отобразить его, в качестве нулевых значений отображаются следующие поля id, idPostagem, descrição и fotoUsuario.

Кто-нибудь знает, где я могу пойти не так и почему, когда я тестирую через Toast, сразу после установки значений они верны, а когда я получаю команду get, они отображаются как нули?

Установка значений:

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());

Результат журнала, когда я установил значения:

I/Test set:: Descrição - teste da descrição
I/Test set:: Foto postagem - https://firebasestorage.googleapis.com/v0/b/tecmaf-59ebf.appspot.com/o/imagens%2Fpostagens%2F-LQYYTzgsU--x9Pj6vle.jpeg?alt=media&token=21c779fd-b0cf-4a41-b2c4-3db06b82a868 
I/Test set:: Foto usuario - https://firebasestorage.googleapis.com/v0/b/tecmaf-59ebf.appspot.com/o/imagens%2Fperfil%2FdXN1YXJpb0B0ZWNtYWYuY29tLmJy.jpeg?alt=media&token=fd144b1c-7509-4b2a-ba11-bb3f912c6ce7
I/Test set:: Id - -LQYYTzgsU--x9Pj6vle
I/Test set:: Nome - USUARIO

Когда я проверяю одинаковые значения в адаптере:

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

Структура базы огня:

enter image description here

Активность:

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);
    }
}

адаптер:

     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);
        }

    }
}

Модель:

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;
    }

}
...