Спиннер с Firebase на фрагменте - PullRequest
1 голос
/ 10 июля 2020

Я хочу создать счетчик с помощью firebase, но когда я запускаю счетчик и нажимаю его, приложение вызывает ошибку, и это сообщение:

java .lang.NullPointerException: Attempt для вызова виртуального метода 'java .lang.String java .lang.Object.toString ()' для ссылки на нулевой объект

этот мой код во фрагменте

 spinner = view.findViewById(R.id.spinner);
        names = new ArrayList<>();
        databaseReference = FirebaseDatabase.getInstance().getReference();
        databaseReference.child("spinners").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {

                for (DataSnapshot chilSnap:snapshot.getChildren()) {
                    String spinnerName = chilSnap.child("name").getValue(String.class);
                    names.add(spinnerName);
                    if (spinnerName!=null){
                        names.add(spinnerName);
                    }
                }
                ArrayAdapter<String> arrayAdapter= new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_item, names);
                arrayAdapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                spinner.setAdapter(arrayAdapter);
            }

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

            }
        });

1 Ответ

0 голосов
/ 10 июля 2020

Проверка

chilSnap.child("name")

может быть нулевым, добавьте проверку

String spinnerName =  chilSnap.child("name")!= null ? chilSnap.child("name").getValue(String.class) :null;

и удалите первую строку names.add (spinnerName); вне блока if

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