我想从firebase中检索数据以显示在ListView中,但当我运行应用程序时,ListView没有显示任何数据。我看到了ListView,但没有数据。你能告诉我为什么吗?我能做些什么?当我尝试使用spinner时,也遇到了同样的问题。
public class CitiesList extends AppCompatActivity {
DatabaseReference databasePaths;
private ListView ListViewCities;
private ArrayList<String> ArrayListCities;
private ArrayAdapter<String> adapterCities;
Paths info;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cities_list);
ListViewCities = (ListView) findViewById(R.id.ListViewCities);
ArrayListCities = new ArrayList<>();
databasePaths = FirebaseDatabase.getInstance().getReference("Paths");
databasePaths.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot items: dataSnapshot.getChildren())
{
info = items.getValue(Paths.class);
ArrayListCities.add(info.city);
}
adapterCities = new ArrayAdapter<>(CitiesList.this, android.R.layout.simple_list_item_1);
ListViewCities.setAdapter(adapterCities);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}}
发布于 2018-08-27 02:34:31
您需要将新列表设置为适配器,但您没有在当前代码中执行此操作。修改下面的行
adapterCities = new ArrayAdapter<>(CitiesList.this, android.R.layout.simple_list_item_1);
ListViewCities.setAdapter(adapterCities);
作为
adapterCities = new ArrayAdapter<>(CitiesList.this, android.R.layout.simple_list_item_1, ArrayListCities);
ListViewCities.setAdapter(adapterCities);
顺便说一句,试着遵循编码风格指南。
https://stackoverflow.com/questions/52029109
复制相似问题