2017-08-31 91 views

回答

0

使用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 –