Я хочу отобразить данные из базы данных 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));