如何将Firebase数据库中的数据列表到listview? Android的

时间:2018-05-20 17:27:24

标签: android firebase firebase-realtime-database

我正在尝试创建一个系统,我可以在Android应用中输入提醒,将其发送到Firebase,以便通过该应用访问所有设备,然后通知该提醒。我仍然需要创建可以从应用程序向Firebase发送内容的界面,但是我在检索数据时遇到了问题。现在它不喜欢我的listView.setAdapter(arrayAdapter)行,因为它认为我正在调用一个空对象引用。这是我的代码:

public class MainActivity extends AppCompatActivity {
ListView listView;
FirebaseDatabase firebaseDatabase;
DatabaseReference databaseReference;
ArrayList<String> arrayList = new ArrayList<>();
ArrayAdapter<String> arrayAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    firebaseDatabase = FirebaseDatabase.getInstance();
    databaseReference = firebaseDatabase.getReference("Users");



    Toast.makeText(this, "ok", Toast.LENGTH_SHORT).show();
    databaseReference.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            String value=dataSnapshot.getValue(String.class);
            arrayList.add(value);
            arrayAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, arrayList);
            listView.setAdapter(arrayAdapter);

        }//public void onChildAdded(DataSnapshot dataSnapshot, String s) end

        class User {

            public String username;
            public String email;

            public User() {
                // Default constructor required for calls to DataSnapshot.getValue(User.class)
            }

            public User(String username, String email) {
                this.username = username;
                this.email = email;
            }

        }//class User end

        public void writeNewUser(String userId, String name, String email) {
            User user = new User(name, email);
       }
        @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) {

        }
    });

}//protected void onCreate(Bundle savedInstanceState) end
}

有一些未使用的类,但我的主要问题是,为什么数组为null?当我尝试在模拟器上运行它时,为什么会崩溃应用程序?

此外,我的数据库中唯一的东西是父用户及其一个孩子,“goy”(作为测试孩子)。

0 个答案:

没有答案