【发布时间】:2018-08-24 09:22:26
【问题描述】:
代码中是否有任何错误,因为我在列表视图中获得了唯一的价格,而不是名称,任何人都可以帮助我吗?我已经尝试了很多方法来解决它,但最后它让我在 StackOverflow 上发帖向你们寻求帮助,我真的陷入了困境。我会非常感谢你的帮助。如果需要,还将提供模型类。
private ListView mlistView;
private ArrayList<String>list;
private ArrayAdapter<String> adapter;
private ArrayList<String>Pricelist;
private ArrayAdapter<String> Priceadapter;
private DatabaseReference ref;
private FirebaseDatabase database;
private FoodItemclass fooditem;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rice_after_login);
final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
android.support.v7.app.ActionBar actionBar = getSupportActionBar();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
actionBar.setTitle("Rice");
fooditem = new FoodItemclass();
mlistView = (ListView)findViewById(R.id.listview);
database = FirebaseDatabase.getInstance();
ref = database.getReference("Rice");
list = new ArrayList<>();
Pricelist = new ArrayList<>();
adapter = new ArrayAdapter<String>(this,R.layout.list_item,R.id.ItemNameIds,list);
Priceadapter = new ArrayAdapter<String>(this,R.layout.list_item,R.id.ItemPriceId,Pricelist);
ref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
fooditem = dataSnapshot.getValue(FoodItemclass.class);
list.add(fooditem.getName());
Pricelist.add(String.valueOf(fooditem.getPrice()));
mlistView.setAdapter(adapter);
mlistView.setAdapter(Priceadapter);
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
【问题讨论】:
-
请分享您的适配器。如我所见,您仅将价目表发送到您的适配器。您还需要发送姓名。您可能会考虑制作一个同时拥有它们的对象。这样您就可以获得将传递给适配器的对象列表。
-
我没有创建适配器类,我已经创建了模型类,然后将值从 firebase 数据库获取到 listview textviews 但问题是我得到的只是价格而不是名称 :(
-
请添加您的适配器类的内容。
标签: android firebase listview firebase-realtime-database