2017-02-04 64 views
0

我在活动中创建了一个选项卡视图。现在我想显示要从Firebase检索的每个标签内的列表项。是否有任何方式在Tab视图中实现FirebaseListAdapter?

我可以检索并显示活动内的数据。但我不知道如何在片段内使用FirebaseListAdapterFirebaseListAdapter需要第一个参数作为Activity,但我如何将片段作为活动传递?

childRef = databaseReference.child(str); 
FirebaseListAdapter<Leave> firebaseListAdapter = new FirebaseListAdapter<Leave>(
      this, 
      Leave.class, 
      R.layout.leavelistview, 
      childRef 
    ) { 
     @Override 
     protected void populateView(View v, Leave model, int position) { 
      ((TextView)v.findViewById(R.id.lv_staffname)).setText(model.getName()); 
      ((TextView)v.findViewById(R.id.lv_type)).setText(model.getType()); 
      ((TextView)v.findViewById(R.id.lv_duration)).setText(model.getDuration()); 
     } 
    }; 
    listView.setAdapter(firebaseListAdapter); 

这是我在活动中使用的代码。但是在一个片段中实现这个会给我一个错误,因为我们不能通过this来得到一个片段。

回答

2

你可以在片段上调用getActivity()将它传递给适配器。就像这样:

FirebaseListAdapter<Leave> firebaseListAdapter = new FirebaseListAdapter<Leave>(
      getActivity(), 
      Leave.class, 
      R.layout.leavelistview, 
      childRef 
    ) { 
     @Override 
     protected void populateView(View v, Leave model, int position) { 
      ((TextView)v.findViewById(R.id.lv_staffname)).setText(model.getName()); 
      ((TextView)v.findViewById(R.id.lv_type)).setText(model.getType()); 
      ((TextView)v.findViewById(R.id.lv_duration)).setText(model.getDuration()); 
     } 
    }; 
+0

它仍然给我错误说期望的参数是'android.app.activity' –

+0

'getActivity()尝试使用' –

+0

的错误消失。 –

相关问题