【发布时间】:2017-03-07 12:19:48
【问题描述】:
我又回到了这个问题,虽然我很接近:我有以下代码,我试图在列表视图中显示 firebase 值。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mystatement);
listview = (ListView) findViewById(R.id.listview);
textView4 = (TextView) findViewById(R.id.textView4);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, list);
listview.setAdapter(adapter);
dref = FirebaseDatabase.getInstance().getReference();
DatabaseReference dref = FirebaseDatabase.getInstance().getReference();
dref= dref.child("Expenditure");
dref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
//Getting the data from snapshot
DogExpenditure dogExpenditure = postSnapshot.getValue(DogExpenditure.class);
//Adding it to a string
String expenses = "Amount: "+dogExpenditure.getAmount()+"\nReason for Use: "+dogExpenditure.getItem()+"\n\n";
String amount = dogExpenditure.getAmount();
String item = dogExpenditure.getItem();
System.out.println(expenses);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
当我在我的 android studio 控制台中运行此代码时,我会看到以下输出。这正是我想要的。但是,它没有显示在应用程序的布局视图中,而是显示一个空白屏幕。
**03-07 15:15:05.777 32332-32332/com.example.moses.farm I/System.out: Amount: dd
03-07 15:15:05.779 32332-32332/com.example.moses.farm I/System.out: Reason for Use: dddd
03-07 15:15:05.782 32332-32332/com.example.moses.farm I/System.out: Amount: kwaraaaa
03-07 15:15:05.782 32332-32332/com.example.moses.farm I/System.out: Reason for Use: ayeeeee**
谁能告诉我如何在我的应用程序中显示该输出,因为目前它没有显示任何内容,但在调试控制台中我可以看到它
【问题讨论】:
-
移行这一行 listview.setAdapter(adapter);作为你的 on create 函数的最后一行
-
创建一个自定义baseadapter,将firebase数据存储在arraylist中并将其传递给adapter。
-
@NiteshMishra 样品请..如果你不介意
标签: android firebase firebase-realtime-database firebaseui