我在活动中创建了一个标签视图。现在,我想在每个选项卡中显示要从Firebase检索的列表项。
我可以检索并显示活动中的数据。但我不知道如何在片段中使用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
获取片段。
答案 0 :(得分: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());
}
};