gpt4 book ai didi

java - 如何为项目名称和项目计数编写正确的类 Android Firebase

转载 作者:行者123 更新时间:2023-12-02 11:19:42 25 4
gpt4 key购买 nike

我正在尝试提取库存数据并最终使用数组适配器将其显示在 ListView 上。基本上我需要将每个项目对象添加到列表中,然后使用 itemobject.getName() 我需要访问项目名称。

Users 
UserID
inventory
0
name:coffee
count:1
1
name:testitem
count:2

项目类别:

public class Item {

private String name;
private int count;
public Item(){

}
public String getName(){
return name;
}
public int getCount(){
return count;
}
}

这就是我获取数据的方式:

inventoryview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

mydb.child("users").child(uid).child("inventory").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String data = dataSnapshot.getValue().toString();
Log.d("asd",data);
Item item = dataSnapshot.getValue(Item.class);
//iterate through incoming data and add item objects to list
Log.d("itemname",item.getName());

}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

Toast.makeText(getActivity(),
"Inventory clicked.",
Toast.LENGTH_LONG).show();
}
});

最佳答案

您的 onDataChange 中缺少循环:

mydb.child("users").child(uid).child("inventory").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
Log.d("itemname", childSnapshot.getChild("name").getValue());
Item item = childSnapshot.getValue(Item.class);
Log.d("itemname",item.getName());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException(); // don't ignore errors
}
}

如果第一个日志语句打印正确的值,而第二个日志语句没有打印正确的值,则表明 Java 类和 JSON 结构之间不匹配。

关于java - 如何为项目名称和项目计数编写正确的类 Android Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50022373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com