我正在制作一个物品清单,在清单中,我携带以下信息id,idPostagem,descrição,nomeUsuario和fotoUsuario。
设置好值后,我立即检查了它们,并全部显示正确,但是当我尝试将其显示为null时,以下字段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
Firebase结构:
活动:
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;
}
}