0
fireviewクエリのデータでリストビューを埋めようとしています。私のコード:firebaseクエリからリストビューを作成する
public class ShowGoalsListActivity extends AppCompatActivity {
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
DatabaseReference messages = mDatabase.child("messages");
ArrayList<String> NameList = new ArrayList<String>();;
public void onCreate(Bundle saveInstanceState)
{
super.onCreate(saveInstanceState);
setContentView(R.layout.goals_list);
ListView animalList=(ListView)findViewById(R.id.listViewAnimals);
getNames();
ArrayAdapter<String> arrayAdapter =
new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, NameList);
animalList.setAdapter(arrayAdapter);
animalList.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View v,int position, long arg3)
{
String selectedAnimal=NameList.get(position);
Toast.makeText(getApplicationContext(), "Animal Selected : "+selectedAnimal, Toast.LENGTH_LONG).show();
}
});
}
void getNames()
{
Query queryRef = messages.orderByChild("pages");
queryRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Map data = (Map) dataSnapshot.getValue();
String name = (String) data.get("name");
NameList.add(name);
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot){
}
@Override
public void onCancelled(DatabaseError databaseError){}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s1){}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s2){}
});
}
}
しかし、レイアウトに行くとき、このリストビューは空です。しかし、私が別のレイアウトに行き、それからgoal_listレイアウトに戻った場合、リストビューには私が必要とするすべての要素が含まれています。何が問題になりますか?
ありがとうございました!それは動作します – DzouSi
良いです。私の答えが役に立つなら、その左側のupvoteボタンをクリックしてください。あなたの質問に答えた場合は、チェックマークをクリックしてそれを受け入れます。そうすれば、他の人はあなたが(十分に)助けられたことを知ることができます。 –