как отобразить значения из firebase в три listView? - PullRequest
0 голосов
/ 26 февраля 2020

Я хочу отобразить данные из базы данных Firebase в реальном времени в listView, но у меня есть проблема, и я не могу ее решить.

ArrayList<String> listYes = new ArrayList<>();

ArrayList<String> listNo = new ArrayList<>();

ArrayList<String> listOff = new ArrayList<>();

private ListView listResultsYes;
private ListView listResultsNo;
private ListView listResultsOff;

private void getnotesRealTime() {
    listYes = new ArrayList<>();

    listNo = new ArrayList<>();

    listOff = new ArrayList<>();

    listResultsYes.setAdapter(new ArrayAdapter(AfterLogged.this, android.R.layout.simple_list_item_1, listYes));
    listResultsNo.setAdapter(new ArrayAdapter(AfterLogged.this, android.R.layout.simple_list_item_1, listNo));
    listResultsOff.setAdapter(new ArrayAdapter(AfterLogged.this, android.R.layout.simple_list_item_1, listOff));

    DatabaseReference r = FirebaseDatabase.getInstance().getReference().child("notes");
    r.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            dbRealTime dbRealTime = new dbRealTime();
            Log.w("onChildAdded", "new data" + dataSnapshot.getKey() + dataSnapshot.child("name").getValue().toString() + "glos: " + dataSnapshot.child("castnote").getValue().toString());
            noteUserID = dataSnapshot.getKey();
            dbRealTime.setCastNote(dataSnapshot.child("castnote").getValue().toString());
            dbRealTime.setNameUser(dataSnapshot.child("name").getValue().toString());
            if(dbRealTime.getCastnote().contains("1"))
            {
                //listYes.add(noteUserID);
                listYes.add(dbRealTime.getNameUser());
                //listResultsYes.deferNotifyDataSetChanged();

            }
            if(dbRealTime.getCastnote().contains("0"))
            {

                listNo.add(dbRealTime.getNameUser());
                //.deferNotifyDataSetChanged();
            }
            if(dbRealTime.getCastnote().contains("2"))
            {

                listOff.add(dbRealTime.getNameUser());
                //listResultsYes.deferNotifyDataSetChanged();
            }

        }

        @Override
        public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }

        @Override
        public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

}

данные не отображаются в listView, и мое приложение упало:

java .lang.NullPointerException: попытка вызвать виртуальный метод 'void android .widget.ListView.setAdapter (android .widget.ListAdapter)' для пустой ссылки на объект в

listResultsYes.setAdapter(new ArrayAdapter(AfterLogged.this, android.R.layout.simple_list_item_1, listYes));
    listResultsNo.setAdapter(new ArrayAdapter(AfterLogged.this, android.R.layout.simple_list_item_1, listNo));
    listResultsOff.setAdapter(new ArrayAdapter(AfterLogged.this, android.R.layout.simple_list_item_1, listOff));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...