首页 > 解决方案 > 当我尝试将数据从 Firebase 导入列表视图时,该应用程序总是崩溃

问题描述

    octDatabase = FirebaseDatabase.getInstance().getReference().child("Octave Spectrum");
    octList = (ListView) findViewById(R.id.octaList);

    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, octData);

//它一直工作到这一点,在此之后应用程序崩溃 setAdapter 函数对我不起作用 octList.setAdapter(arrayAdapter);

    octDatabase.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {

            String y = dataSnapshot.getValue(String.class);

            octData.add(y);


        }

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

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

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

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

这是我试图从 firebase 导入的列表

标签: android-studio

解决方案


首先,不清楚什么是octData?因此,据我了解,您的列表名称是 octList。

因此,您需要在代码中的数组适配器的第三个参数中设置列表,如下所示:-

octDatabase = FirebaseDatabase.getInstance().getReference().child("Octave Spectrum");
    octList = (ListView) findViewById(R.id.octaList);

替换以下行:-

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, octData);

和 :-

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, octList);

推荐阅读