ListView не показывает данные из firebase - PullRequest
0 голосов
/ 26 августа 2018

Я хочу получить данные из firebase для отображения в ListView, но когда я запускаю приложение, ListView не показывает никаких данных.Я вижу ListView, но нет данных.Можете ли вы сказать мне, почему и что я могу сделать?У меня была такая же проблема, когда я пытался с вертушкой.

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) {

        }
    });




}}

Ответы [ 2 ]

0 голосов
/ 26 августа 2018

Вам нужно передать Adapter TextView, из которого адаптер будет устанавливать данные.

Поэтому после R.layout.XXXX вам нужно передать: android.R.id.text1

0 голосов
/ 26 августа 2018

Вам нужно установить новый список для адаптера, который вы не делаете в свой текущий код.Измените нижнюю строку

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);

В качестве примечания, попробуйте следовать рекомендациям по стилю кодирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...