Java Firebase在将数据对象检索到Listview时返回随机值
我正在尝试将数据从Firebase检索到Listview中。虽然它确实正确地检索了数据,但它在我的项目ID后显示了一些随机值。我的数据库如下所示: 我正在创建一个对象,其中包含买家下每个字符串中的所有值,然后我希望在Listview Navn和Telefonnr中显示某些值。但如图所示,每次激活活动时,它都会给我一个随机生成的字符串。我的代码看起来像下面所示的买家类/对象: 更新!:已解决,更新的代码将发布给需要它的人:Java Firebase在将数据对象检索到Listview时返回随机值,java,android,listview,object,firebase-realtime-database,Java,Android,Listview,Object,Firebase Realtime Database,我正在尝试将数据从Firebase检索到Listview中。虽然它确实正确地检索了数据,但它在我的项目ID后显示了一些随机值。我的数据库如下所示: 我正在创建一个对象,其中包含买家下每个字符串中的所有值,然后我希望在Listview Navn和Telefonnr中显示某些值。但如图所示,每次激活活动时,它都会给我一个随机生成的字符串。我的代码看起来像下面所示的买家类/对象: 更新!:已解决,更新的代码将发布给需要它的人: private ListView mUserLis
private ListView mUserList;
private ArrayList<String> mUsernames = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_existing_customer);
mDatabaseReference = FirebaseDatabase.getInstance().getReference("Buyers");
mUserList = (ListView) findViewById(R.id.UserListView);
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mUsernames);
mUserList.setAdapter(arrayAdapter);
mDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
Map<String, String> map = (Map<String, String>) childSnapshot.getValue();
Log.v("YourValue,","Map value is:" +map.toString());
Log.d("TAG", "onChildAdded:" + dataSnapshot.getKey());
Buyers buyerList = new Buyers(map);
mUsernames.add(buyerList.getData());
}
arrayAdapter.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
这是买家类别:
public class Buyers {
private String car_Value;
private String interest;
private String driverLicenseNr;
private String name;
private String personNr;
private String phone_Number;
public Buyers(Map<String,String> map){
car_Value = map.get("Bil");
interest = map.get("Interresse");
driverLicenseNr = map.get("Kørekortnr");
name = map.get("Navn");
personNr = map.get("Personnr");
phone_Number = map.get("Telefonnr");
}
String getData()
{
return (name + phone_Number);
}
您正在传递一个类的对象列表,其中包含来自数据库的数据,从而打印每个类的id。但这些对象中的每一个都有数据 解决方案: 将mUsernames更改为ArrayList 在BuyerList中创建一个getter,返回要显示的数据 例如:字符串getData{return car_value+interest}; 然后将这些数据添加到您的列表中 mUsernames.addbuyerList.getData;
我猜在适配器中,您正在显示买家对象。要获取所需的值,请重写ToString函数或为所需的值添加getter。请将适配器的代码添加到问题中。这就是全部内容,您可以看到所有内容。arrayAdapter就是这样使用的,我猜,我是新手,刚看了一些视频,但它对我来说不起作用。老实说,除了返回中的void之外,这确实很有意义,因为void不能返回:我尝试将它与字符串getData一起使用。。。相反,但似乎不起作用。你有办法让那部分工作吗?根据代码,mUsernames不是已经是一个ArrayList了吗?或者我误解了什么吗?将ArrayList更改为字符串而不是字符串成功了!我的更新代码在说明中,非常感谢!