您好我遇到了一些问题,我想更改键号来命名查看我的截图。我需要更改代码(01到名称),thankyou
我的截图:
我的代码:
private void loadListBarang(String tokoId) {
adapter = new FirebaseRecyclerAdapter<Barang, BarangViewHolder>(Barang.class,
R.layout.barang_item,
BarangViewHolder.class,
barangList.orderByChild("TokoId").equalTo(tokoId)) {
@Override
protected void populateViewHolder(BarangViewHolder viewHolder, Barang model, int position) {
viewHolder.barang_nama.setText(model.getNama());
viewHolder.barang_harga.setText(model.getHarga());
viewHolder.barang_satuan.setText(model.getSatuan());
viewHolder.toko_id.setText(model.getTokoId());
final Barang local = model;
viewHolder.setItemClickListener(new ItemClickListener() {
@Override
public void onClick(View view, int position, boolean isLongClick) {
return;
}
});
}
};
答案 0 :(得分:0)
使用Firebase时,建议您在观看后构建数据。 因此,如果您可以将Nama直接保存在Barang对象中,则会减少查询并显着提高应用程序的性能。
现在构建数据库的方式,要求您在填充RecyclerView时再次进行读取。您可以使用SingleValueListener:
private void loadListBarang(String tokoId) {
adapter = new FirebaseRecyclerAdapter<Barang, BarangViewHolder>(Barang.class,
R.layout.barang_item,
BarangViewHolder.class,
barangList.orderByChild("TokoId").equalTo(tokoId)) {
@Override
protected void populateViewHolder(BarangViewHolder viewHolder, Barang model, int position) {
viewHolder.barang_nama.setText(model.getNama());
viewHolder.barang_harga.setText(model.getHarga());
viewHolder.barang_satuan.setText(model.getSatuan());
tokoList.child(model.getTokoId()).child("Nama")
.addListenerForSingleValueEvent(new ValueEventListener {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String tokoNama = dataSnapshot.getValue(String.class);
viewHolder.toko_id.setText(tokoNama);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
final Barang local = model;
viewHolder.setItemClickListener(new ItemClickListener() {
@Override
public void onClick(View view, int position, boolean isLongClick) {
return;
}
});
}
};
现在请记住,名称可能会比其他数据晚几秒显示,因为它是从第二个侦听器读取的。