从 FirebaseUI 的静态视图持有者 class 调用 getFragmentManager() 方法
Calling getFragmentManager() method from static view holder class of FirebaseUI
我正在处理 FirebaseUI RecyclerView,我想在单击列表项时创建一个对话框片段。要创建新片段,我必须从静态 class 调用 getFragmentManager()
。错误由 IDE 给出。我无法将参数传递给静态查看器 class,因为它是由 Firebase 回收器适配器直接实例化的。
这里是 Adapter 的代码片段:
mAdapter = new FirebaseRecyclerAdapter<Course, CourseViewHolder>(
Course.class,
R.layout.list_item_course,
CourseViewHolder.class,
mDatabaseReference
) {
静态 class 代码在这里:
private static class CourseViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView textView;
public CourseViewHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.list_item_course_title_text_view);
}
@Override
public void onClick(View v) {
FragmentManager manager = getFragmentManager();
CourseOperationFragment CourseOperationFragment = new CourseOperationFragment();
CourseOperationFragment.show(manager, DIALOG_OPERATION);
}
}
您可以通过在视图上调用 getContext()
来获取与视图关联的 Context
。然后,您可以检查该上下文是否是 instanceof
FragmentActivity
。如果是,那么您可以将 Context
转换为 FragmentActivity
,并在其上调用方法来操作其片段。
我正在处理 FirebaseUI RecyclerView,我想在单击列表项时创建一个对话框片段。要创建新片段,我必须从静态 class 调用 getFragmentManager()
。错误由 IDE 给出。我无法将参数传递给静态查看器 class,因为它是由 Firebase 回收器适配器直接实例化的。
这里是 Adapter 的代码片段:
mAdapter = new FirebaseRecyclerAdapter<Course, CourseViewHolder>(
Course.class,
R.layout.list_item_course,
CourseViewHolder.class,
mDatabaseReference
) {
静态 class 代码在这里:
private static class CourseViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView textView;
public CourseViewHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.list_item_course_title_text_view);
}
@Override
public void onClick(View v) {
FragmentManager manager = getFragmentManager();
CourseOperationFragment CourseOperationFragment = new CourseOperationFragment();
CourseOperationFragment.show(manager, DIALOG_OPERATION);
}
}
您可以通过在视图上调用 getContext()
来获取与视图关联的 Context
。然后,您可以检查该上下文是否是 instanceof
FragmentActivity
。如果是,那么您可以将 Context
转换为 FragmentActivity
,并在其上调用方法来操作其片段。