【问题标题】:Populate listview with data from firebase on androidstudio在 android studio 中使用来自 firebase 的数据填充 listview
【发布时间】:2017-08-31 17:48:32
【问题描述】:

我正在尝试在 listview 上插入我的 firebase 数据库的数据,但是,我没有成功。 我的firebase有一个名为“ocorrencias”的“主节点”,里面有一些信息,我想在listview中插入这个数据(信息)(firebase中带有数据的图像)。 Database firebase, with data to insert in listview 有人可以帮助我吗?

拥抱。

【问题讨论】:

    标签: android listview firebase firebase-realtime-database


    【解决方案1】:

    使用 FirebaseUI,您可以按照本指南(RecyclerView guideListView guide)填充 RecyclerView 和 ListView,但由于您要求使用 ListView,我将仅解释这种情况。

    在开始编码之前,您必须将您的项目连接到 Firebase。如果你还没有,你可以关注这个guide。现在我们可以开始从 Firebase 数据库中检索实时数据了。

    首先你必须在 app/build.gradle 文件的依赖项中添加以下行:

    compile 'com.firebaseui:firebase-ui-database:2.3.0'
    

    然后,在您的 Activity 中,您必须找到您的 ListView:

    ListView listView = (ListView) findViewById(R.id.listview_id);
    

    并获取对您的数据库的引用:

    DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
    

    因此,您必须创建将数据传递给 ListView 的适配器。 FirebaseUI 有自己的version 适配器供您使用。

    FirebaseListAdapter mAdapter = new FirebaseListAdapter<YourDatabaseObject>(this, YourDatabaseObject.class, android.R.layout.two_line_list_item, ref) {
        @Override
        protected void populateView(View view, YourDatabaseObject databaseField, int position) {
            ((TextView) view.findViewById(android.R.id.text1)).setText(databaseField.getField1());
            ((TextView) view.findViewById(android.R.id.text2)).setText(databaseField.getField2());
    
        }
    };
    // Set the adapter of the ListView
    listView.setAdapter(mAdapter);
    

    您可以将 YourDatabaseObject 替换为代表 Firebase 数据库中数据的类(在您的情况下为 Ocurencias)。如果你还没有创建它,你可以关注这个guide。 如果您愿意,您也可以替换布局 ID,因为我使用了默认 ID。

    通过这种方式,ListView 现在应该显示数据库中的数据,并在新数据插入数据库时​​自动更新。

    如果您尚未创建显示数据所需的对象,您可以按照上面喜欢的指南或阅读 FirebaseUI 的 official documentation

    【讨论】:

    • 您的意思是在您的应用程序中粘贴此代码不起作用吗?
    • 没有粘贴,但是,我理解你的代码,我的疑惑都解决了。感谢您的回答。在您的代码中,我可以插入数据,但要填充它是必要的“for”。 +1
    • 很高兴您解决了问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    相关资源
    最近更新 更多