0
我想用firebase查询中的数据填充我的列表视图。我的代码:从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){}
});
}
}
但是,当我去我的布局这个列表视图是空的。但是,如果我然后去另一个布局,然后回到goals_list layout listview包含我需要的所有元素。什么可能是一个问题?
谢谢!它的工作原理 – DzouSi
很好听。如果我的回答很有用,请点击左侧的upvote按钮。如果它回答了您的问题,请点击复选标记以接受它。这样别人就知道你已经(充分)帮助了。 –