我是Android編程新手。我想在Android中列出Firebase中的所有子列表。在android中列出兒童
我寫了這段代碼。但是當我啓動應用程序時,listview返回null。
什麼問題?
public class haber_goruntule extends AppCompatActivity {
private ListView liste;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_haber_goruntule);
final List<connector_haber> mesajlar=new ArrayList<connector_haber>();
liste= (ListView) findViewById(R.id.list);
FirebaseDatabase firebaseDatabase=FirebaseDatabase.getInstance();
DatabaseReference ref=firebaseDatabase.getReference();
ref.child("haberler").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Iterable<DataSnapshot> children=dataSnapshot.getChildren();
for(DataSnapshot child : children){
connector_haber haber=child.getValue(connector_haber.class);
mesajlar.add(haber);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
final ArrayAdapter<connector_haber> arrayAdapter=new ArrayAdapter<connector_haber>(this,android.R.layout.simple_list_item_1,mesajlar);
liste.setAdapter(arrayAdapter);
}
}
你好@Kevin。請確保您使用調試模式或日誌語句實際接收onDataChange中的數據。另請將'arrayAdapter.notifyDataSetChanged()'調用添加爲onDataChange回調中的最後一行回調 –
您還可以使用子監聽器https://firebase.google.com/docs/reference/android/com/google/firebase/database/ ChildEventListener這種方式你不需要迭代器,但必須添加數據到適配器每次添加 – cutiko