使用Firebase

时间:2016-07-16 18:04:28

标签: android firebase firebase-realtime-database

我想使用Firebase将整个对象添加到我的listview中。 已经用图像说明了这一点,因为有时图像比文本更容易。

Firebase database tree

Firebase教程展示如何将每个子项作为项返回并使用Firebase UI显示它,我想几乎做同样的事情但不同之处在于我希望整个对象成为子对象并且该对象中的子对象将是每个listitem的附加信息。

所以在我的图像中,我有对象露营和“山脉”,“自然”,“地方”。 在自定义listView中,我希望将不同的值设置为textViews.to

这是我使用Firebase UI获取子项的方法:

protected void onStart(){
    super.onStart();
    Firebase items = rootRef.child("events");
    final FirebaseListAdapter<String> fireAdapter = new FirebaseListAdapter<String>(
            this,String.class,R.layout.list_item,items) {
        @Override
        protected void populateView(View view, String s, int i) {
            TextView testText = (TextView)view.findViewById(R.id.textView2);
            testText.setText(s);
            trucks.add(s);
        }
    };
    listView.setAdapter(fireAdapter);
}

更新

  
    

以下是我在自定义列表视图布局中将山脉值设置为textview的代码:

  
private void getUpdatesEvents(DataSnapshot dataSnapshotRoot){
    events.clear();
    for(DataSnapshot dataSnapshot : dataSnapshotRoot.getChildren()){
        Events e = new Events();
        e.setName(dataSnapshot.getValue(Events.class).getName());
        events.add(e.getName());
    }
    if(events.size()>0){
        ArrayAdapter adapter = new ArrayAdapter(this,R.layout.list_item,R.id.textView2,events);
        listView.setAdapter(adapter);
    }
    else{
        Toast.makeText(this,"There is no data",Toast.LENGTH_LONG).show();
    }
}

1 个答案:

答案 0 :(得分:1)

您已使用Cardview布局而非Listview。