我試圖從檢索到的數據中檢索Firebase中的數據並創建一個Android列表視圖。例如,我想從https://docs-examples.firebaseio.com/web/data中檢索所有消息,併爲每條消息創建一個android列表視圖。消息的孩子只能是每個單一列表視圖的數據顯示。如何檢索Firebase數據並創建Android列表視圖
這個https://www.firebase.com/docs/android/guide/retrieving-data.html有助於解釋支持的Firebase數據類型,但仍然難以理解。非常感謝您的幫助。
謝謝!
Listview.java
public class ListingsActivity extends ListActivity {
@TargetApi(Build.VERSION_CODES.HONEYCOMB)@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Firebase.setAndroidContext(this);
ActionBar actionBar = getActionBar();
actionBar.hide();
Firebase ref = new Firebase("https://docs-examples.firebaseio.com/web/data/messages/");
final Map < String, Object > data;
final List <? > data2;
// Attach an listener to read the data at our posts reference
ref.addListenerForSingleValueEvent(new ValueEventListener() {@Override
public void onDataChange(DataSnapshot snapshot) {
System.out.println("Data: " + snapshot.getValue());
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("Something went wrong!");
}
});
// Binding Array to ListAdapter
// this.setListAdapter(new ArrayAdapter<String>(this, R.layout.activity_listings, R.id.label, firebaseData));
ListView lv = getListView();
System.out.println("HERE!!!");
// listening to single list item on click
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView <? > parent, View view,
int position, long id) {
// selected item
String fproduct_label = ((TextView) view).getText().toString();
// Launching new Activity on selecting single List Item
Intent i = new Intent(getApplicationContext(), SingleListView.class);
// sending data to new activity
i.putExtra("fproduct_label", fproduct_label);
startActivity(i);
}
});
}
}
SingleView.java
public class SingleListView extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.single_list_view);
TextView txtProduct = (TextView) findViewById(R.id.product_label);
Intent i = getIntent();
// getting attached intent data
String product = i.getStringExtra("fproduct_label");
// displaying selected product name
txtProduct.setText(product);
}
}
在我們能夠在StackOverflow上幫助你之前,你將不得不自己做更多的修改工作。也許這是一個很好的下一步:https://github.com/firebase/FirebaseUI-Android/tree/master/codelabs/chat –
嗨,弗蘭克。感謝您的注意和鏈接!我更新了分享我目前擁有的代碼的帖子。我有兩個我想存儲Firebase檢索數據的變量。再次感謝! – Dev3r
如果您在將'onDataChange'映射到ListView時遇到問題,我甚至會更推薦我之前鏈接的教程。它使用FirebaseUI爲您處理該映射。你可以使用它,或者學習它的代碼來看看如何自己做。 –