2015-11-14 63 views
1

我試圖從檢索到的數據中檢索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); 
    } 
} 
+1

在我們能夠在StackOverflow上幫助你之前,你將不得不自己做更多的修改工作。也許這是一個很好的下一步:https://github.com/firebase/FirebaseUI-Android/tree/master/codelabs/chat –

+0

嗨,弗蘭克。感謝您的注意和鏈接!我更新了分享我目前擁有的代碼的帖子。我有兩個我想存儲Firebase檢索數據的變量。再次感謝! – Dev3r

+0

如果您在將'onDataChange'映射到ListView時遇到問題,我甚至會更推薦我之前鏈接的教程。它使用FirebaseUI爲您處理該映射。你可以使用它,或者學習它的代碼來看看如何自己做。 –

回答

0

我已經回答瞭如何檢索firebase數據here這將幫助您開始使用firebase。一旦您知道如何從firebase獲取數據,您可以使用該數據填充ListView。按照這個link瞭解如何創建一個簡單的ListView

+0

感謝Parag,這實際上有助於解釋Android的默認佈局。我並不知道,並對那裏的生活感到困惑。謝謝。 – Dev3r

相關問題