Java 无法将数据从firebase检索到列表视图中

Java 无法将数据从firebase检索到列表视图中,java,android,json,firebase,firebase-realtime-database,Java,Android,Json,Firebase,Firebase Realtime Database,我无法从firebase中检索实时数据,我跟踪了许多站点,但没有解决我的问题。它们大多在recycler视图上,但我想在列表视图上检索数据。。没有错误,但当我在emulator中运行列表视图时,它是空的。此外,我不能使用firebase ui,因为它在我的项目中使用的卡视图依赖项中产生了一些问题。。请帮忙-- package com.serverphone.healthyfoods; 导入android.content.Intent; 导入android.os.Bundle; 导入android

我无法从firebase中检索实时数据,我跟踪了许多站点,但没有解决我的问题。它们大多在recycler视图上,但我想在列表视图上检索数据。。没有错误,但当我在emulator中运行列表视图时,它是空的。此外,我不能使用firebase ui,因为它在我的项目中使用的卡视图依赖项中产生了一些问题。。请帮忙--

package com.serverphone.healthyfoods;
导入android.content.Intent;
导入android.os.Bundle;
导入android.support.design.widget.FloatingActionButton;
导入android.support.design.widget.Snackbar;
导入android.support.v7.app.AppActivity;
导入android.support.v7.widget.Toolbar;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.CheckBox;
导入android.widget.CheckedTextView;
导入android.widget.ListView;
导入com.firebase.client.ChildEventListener;
导入com.firebase.client.DataSnapshot;
导入com.firebase.client.firebase;
导入com.firebase.client.firebase错误;
导入java.util.ArrayList;
公共类AlaCarte扩展了AppCompative活动{
ListView lv;
字符串arr[]=新字符串[]{“Paneer Butter Masala”、“Chicken Butter Masala”、“Chicken Biriyani”};
ArrayList al=新的ArrayList();
ArrayList食品=新ArrayList();
按钮btn;
Firebase mref;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ala_carte);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
getSupportActionBar().setTitle(“Alacarte!!”);
mref=新的火基(“https://healthy-foods-270de.firebaseio.com/Food "(项目);;
lv=(ListView)findViewById(R.id.ListView);
btn=(按钮)findViewById(R.id.button8);
final ArrayAdapter aa=新的ArrayAdapter(AlaCarte.this,android.R.layout.simple\u list\u item\u multiple\u selection,food);
低压设置适配器(aa);
mref.addChildEventListener(新的ChildEventListener(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
//String key=dataSnapshot.getKey();
//String value=dataSnapshot.getValue(String.class);
//字符串项=键+“-->”+值;
String value=dataSnapshot.getValue(String.class);
食品.附加值;
aa.notifyDataSetChanged();
}
@凌驾
公共void onChildChanged(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
ChildRemoved上的公共void(DataSnapshot DataSnapshot){
}
@凌驾
已移动ChildMoved上的公共void(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
取消后的公共无效(FirebaseError FirebaseError){
}
});
lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
CheckedTextView CheckedTextView=((CheckedTextView)视图);
//checkedTextView.setChecked(!checkedTextView.isChecked());
if(checkedTextView.isChecked()){
checkedTextView.setChecked(false);
移除(adapterView.getItemAtPosition(i));
}否则{
checkedTextView.setChecked(true);
添加(adapterView.getItemAtPosition(i));
}
}
});
btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
if(al.isEmpty()){
Snackbar.make(查看“选择要下订单的复选框”,Snackbar.LENGTH\u LONG)
.setAction(“Action”,null).show();
}否则{
意向i=新意向(AlaCarte.this,ConfirmAlacarte.class);
i、 putExtra(“mylist”,al);
星触觉(i);
}
}
});
/*FloatingActionButton fab=(FloatingActionButton)findViewById(R.id.fab);
fab.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Snackbar.make(查看“替换为您自己的操作”,Snackbar.LENGTH\u LONG)
.setAction(“Action”,null).show();
}
});*/
}
}

我去过那里。我没有通读您的全部代码,但如果您从firebase获取数据并将其添加到列表中,则需要类似“刷新”的内容

我所做的是

我在页面底部添加了一个按钮,当我点击它时,重新启动意图

伪会像

public void Refresh(View view){          //refresh is onClick name given to the button

    onRestart();
}


@Override
protected void onRestart() {

    // TODO Auto-generated method stub
    super.onRestart();
    Intent i = new Intent("YourClass".this, "YourClass".class);  //your class
    startActivity(i);
    finish();

}
这解决了我的问题,我得到了数据,但没有显示在我的listView中

如果您的“食物”数组为空或不为空,您还可以使用ToastMessage测试它

public void Refresh(View view){          //refresh is onClick name given to the button

    onRestart();
}


@Override
protected void onRestart() {

    // TODO Auto-generated method stub
    super.onRestart();
    Intent i = new Intent("YourClass".this, "YourClass".class);  //your class
    startActivity(i);
    finish();

}