ListView listView = (ListView) findViewById(R.id.listView);
final ArrayList<String> friends = new ArrayList<String>();
players.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot player : dataSnapshot.getChildren()) {
Log.i("player", player.getKey());
friends.add(player.getKey());
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
while (friends.isEmpty()) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// link between a set of data and the AdapterView that displays the data
ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1,
friends);
listView.setAdapter(arrayAdapter);
Firebaseのスレッドがすべてのデータを取得して友人のアレイリストに保存するまで、現在のスレッドが待機すると予想しましたが、私はAndroidのエミュレータで黒い画面しか表示されません。 誰でもこの作業をどのように達成することができるかについての提案はありますか?リストビューにFirebaseのデータを入力するにはどうすればよいですか?
'Thread.sleep(1000);'問題を引き起こす行。 'onDataChange'内のListViewにアダプタを追加しないのはなぜですか? –