List returning null values











up vote
0
down vote

favorite












I am making an item listing, in that listing I bring the following information id, idPostagem, descrição, nomeUsuario and fotoUsuario.



Right after setting the values, I checked them and I'm all displaying correctly, but when I try to display it shows as null the following fields id, idPostagem, descrição and fotoUsuario.



Does anyone know 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 nulls?



Setting the 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:



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 adapter:



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:



enter image description here



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

}









share|improve this question
























  • Have you considered making the private fields in ItemSalvo public?
    – Cool Guy CG
    Nov 7 at 9:36










  • from where are you setting the value?
    – gratien asimbahwe
    Nov 7 at 9:43










  • @CoolGuyCG No, i didnt consider, but the field nomeUsuario is correct, it shows a value.
    – Luis Felipe
    Nov 7 at 9:45










  • @gratienasimbahwe I am setting on another Adapter, I test the value and it set correctly
    – Luis Felipe
    Nov 7 at 9:46










  • The another fields shows null
    – Luis Felipe
    Nov 7 at 9:47















up vote
0
down vote

favorite












I am making an item listing, in that listing I bring the following information id, idPostagem, descrição, nomeUsuario and fotoUsuario.



Right after setting the values, I checked them and I'm all displaying correctly, but when I try to display it shows as null the following fields id, idPostagem, descrição and fotoUsuario.



Does anyone know 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 nulls?



Setting the 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:



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 adapter:



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:



enter image description here



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

}









share|improve this question
























  • Have you considered making the private fields in ItemSalvo public?
    – Cool Guy CG
    Nov 7 at 9:36










  • from where are you setting the value?
    – gratien asimbahwe
    Nov 7 at 9:43










  • @CoolGuyCG No, i didnt consider, but the field nomeUsuario is correct, it shows a value.
    – Luis Felipe
    Nov 7 at 9:45










  • @gratienasimbahwe I am setting on another Adapter, I test the value and it set correctly
    – Luis Felipe
    Nov 7 at 9:46










  • The another fields shows null
    – Luis Felipe
    Nov 7 at 9:47













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I am making an item listing, in that listing I bring the following information id, idPostagem, descrição, nomeUsuario and fotoUsuario.



Right after setting the values, I checked them and I'm all displaying correctly, but when I try to display it shows as null the following fields id, idPostagem, descrição and fotoUsuario.



Does anyone know 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 nulls?



Setting the 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:



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 adapter:



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:



enter image description here



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

}









share|improve this question















I am making an item listing, in that listing I bring the following information id, idPostagem, descrição, nomeUsuario and fotoUsuario.



Right after setting the values, I checked them and I'm all displaying correctly, but when I try to display it shows as null the following fields id, idPostagem, descrição and fotoUsuario.



Does anyone know 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 nulls?



Setting the 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:



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 adapter:



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:



enter image description here



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

}






android firebase firebase-realtime-database android-adapter






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 8 at 10:42

























asked Nov 7 at 9:23









Luis Felipe

219




219












  • Have you considered making the private fields in ItemSalvo public?
    – Cool Guy CG
    Nov 7 at 9:36










  • from where are you setting the value?
    – gratien asimbahwe
    Nov 7 at 9:43










  • @CoolGuyCG No, i didnt consider, but the field nomeUsuario is correct, it shows a value.
    – Luis Felipe
    Nov 7 at 9:45










  • @gratienasimbahwe I am setting on another Adapter, I test the value and it set correctly
    – Luis Felipe
    Nov 7 at 9:46










  • The another fields shows null
    – Luis Felipe
    Nov 7 at 9:47


















  • Have you considered making the private fields in ItemSalvo public?
    – Cool Guy CG
    Nov 7 at 9:36










  • from where are you setting the value?
    – gratien asimbahwe
    Nov 7 at 9:43










  • @CoolGuyCG No, i didnt consider, but the field nomeUsuario is correct, it shows a value.
    – Luis Felipe
    Nov 7 at 9:45










  • @gratienasimbahwe I am setting on another Adapter, I test the value and it set correctly
    – Luis Felipe
    Nov 7 at 9:46










  • The another fields shows null
    – Luis Felipe
    Nov 7 at 9:47
















Have you considered making the private fields in ItemSalvo public?
– Cool Guy CG
Nov 7 at 9:36




Have you considered making the private fields in ItemSalvo public?
– Cool Guy CG
Nov 7 at 9:36












from where are you setting the value?
– gratien asimbahwe
Nov 7 at 9:43




from where are you setting the value?
– gratien asimbahwe
Nov 7 at 9:43












@CoolGuyCG No, i didnt consider, but the field nomeUsuario is correct, it shows a value.
– Luis Felipe
Nov 7 at 9:45




@CoolGuyCG No, i didnt consider, but the field nomeUsuario is correct, it shows a value.
– Luis Felipe
Nov 7 at 9:45












@gratienasimbahwe I am setting on another Adapter, I test the value and it set correctly
– Luis Felipe
Nov 7 at 9:46




@gratienasimbahwe I am setting on another Adapter, I test the value and it set correctly
– Luis Felipe
Nov 7 at 9:46












The another fields shows null
– Luis Felipe
Nov 7 at 9:47




The another fields shows null
– Luis Felipe
Nov 7 at 9:47

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53186569%2flist-returning-null-values%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53186569%2flist-returning-null-values%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







這個網誌中的熱門文章

Tangent Lines Diagram Along Smooth Curve

Yusuf al-Mu'taman ibn Hud

Zucchini