使用androidstudio上的firebase数据填充列表视图

问题描述:

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

拥抱。

使用FirebaseUI,您可以在本指南(RecyclerView guideListView guide)之后填充RecyclerView以及ListView,但因为您要求提供ListView,因此我将解释这种情况。

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

首先,你必须添加下面一行app/build.gradle文件的相关性:

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

然后,在你的活动,你必须要找到你的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

+0

感谢您的回答。 但是,我的代码是不同的 –

+0

你的意思是粘贴这个代码,因为它在你的应用程序中不起作用? –

+0

没有粘贴,但是,我理解你的代码,我的疑惑解决了。感谢您的回答。在您的代码中,我可以插入数据,但填充它是必需的“for”。 +1 –