Создание спиннера с возможностью поиска, который загружается из базы Fire - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь создать поисковый счетчик, который загружает информацию о округах из базы данных. Я новичок в android разработке, и я основал то, что я делал, на различных видео на YouTube и посте переполнения стека. Вот что я имею в своей деятельности:

public class Preferences extends AppCompatActivity {

    SearchableSpinner spcounties;
    private DatabaseReference mDatabase;
    List<String> countyList = new ArrayList<String>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_preferences);

        spcounties = (SearchableSpinner) findViewById(R.id.spcounties);
        mDatabase = FirebaseDatabase.getInstance().getReference();
        mDatabase.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                for (DataSnapshot ds : dataSnapshot.getChildren()) {
                    String county = ds.child("County").getValue(String.class);
                    countyList.add(county);
                }
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, countyList);
                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                spcounties.setAdapter(adapter);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                Toast.makeText(Preferences.this, databaseError.getMessage(), Toast.LENGTH_LONG).show();
            }

        });
    }
}

Моя БД структурирована так:
enter image description here

Сейчас мое приложение вылетает, когда нажата кнопка поиска.

Трассировка стека:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.jws.documentmarketplace, PID: 17515
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
        at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:454)
        at android.widget.ArrayAdapter.getView(ArrayAdapter.java:416)
        at android.widget.AbsListView.obtainView(AbsListView.java:2405)
        at android.widget.ListView.measureHeightOfChildren(ListView.java:1417)
        at android.widget.ListView.onMeasure(ListView.java:1323)
        at android.view.View.measure(View.java:25185)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6821)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
        at android.view.View.measure(View.java:25185)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6821)
        at android.widget.Fra

1 Ответ

0 голосов
/ 29 февраля 2020

Я изменил эту строку, и она заработала.

mDatabase = FirebaseDatabase.getInstance().getReference("Counties/");
...