我試圖從Firebase檢索數據到ListView中。雖然它能夠正確檢索數據,但它會在我的項目ID後顯示一些隨機值。我的數據庫看起來像這樣: 我創建了一個對象,其中包含「買家」下的每個字符串中的所有值,然後我想要列表視圖中顯示某些值(「Navn」和「Telefonnr」。但如圖所示,它給我什麼似乎是一個隨機生成的字符串(更改每次我激活活動)。我的代碼看起來像這樣(買家類/對象如下所示): 更新!:解決,更新的代碼發佈給需要它的人: )當檢索數據對象到列表視圖時,Firebase返回隨機值
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);
}
我猜測在你的適配器中,你正在顯示買家對象。要獲得所需的值,可以重寫ToString()函數或爲所需的值添加getters。請將您的適配器代碼添加到問題中。 –
這就是全部,你可以看到一切。 arrayAdapter就像我想的那樣使用,我是新手,只是看了一些視頻,但它對我不起作用。 – Michael