是否有任何方式在Tab视图中实现FirebaseListAdapter?
问题描述:
我在活动中创建了一个选项卡视图。现在我想显示要从Firebase检索的每个标签内的列表项。是否有任何方式在Tab视图中实现FirebaseListAdapter?
我可以检索并显示活动内的数据。但我不知道如何在片段内使用FirebaseListAdapter
。 FirebaseListAdapter
需要第一个参数作为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
来得到一个片段。
答
你可以在片段上调用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());
}
};
它仍然给我错误说期望的参数是'android.app.activity' –
'getActivity()尝试使用' –
的错误消失。 –