I'm doing an item listing, in that listing I bring the following information id, idPost, description, userName and photoUser.
After setting the values, I checked them and I'm all displaying correctly, but when I try to display it it shows as null the following fields id, idPost, description and photoUsername.
Someone knows where I can be going wrong and why when I test through toast, right after setting the values, they are correct and when I pull with get they appear as null?
Setting values:
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());
Result of Log when I set the values: Log result when I'm setting values
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
When I test the same values in the adapter apps retrieve:
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
Firebase structure:
Activity:
publicclassItensSalvosActivityextendsAppCompatActivity{privateToolbartoolbar;privateRecyclerViewrecyclerItensSalvos;privateItensSalvosAdapteritensSalvosAdapter;privateList<ItemSalvo>listaItemSalvo=newArrayList<>();privateValueEventListenervalueEventListenerItensSalvos;privateDatabaseReferenceitensSalvosRef;privateStringidUsuarioLogado;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){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;
}
}