问题描述
我创建了两个 Fragment,目标 Fragment 有一个可扩展的列表视图,其中也有一个 Adapter 类。当我尝试将此关键字传递给作为三个参数之一的上下文时,它不起作用。任何人都可以指导我哪里出错了。
@Override
public void onViewCreated(@NonNull View view,@Nullable Bundle savedInstanceState) {
super.onViewCreated(view,savedInstanceState);
//Initializations
expandableListView=view.findViewById(R.id.expand_list);
content_collection();
//listadapter
listadapter=new Exlistadapter(this,branches,branchntopic);
expandableListView.setAdapter(listadapter);
}
解决方法
this
不是 Fragments 中的有效上下文,您需要改用 requireContext()
或 getContext()
。
Fragment 类不是从 Context 类扩展而来,因此 Fragment 不是上下文。但是 Activity/AppCompatActivity 从 Context
类扩展。
使用getActivity()代替this。 那应该可以解决问题,因为列表不在片段上下文中,而是在调用片段的活动中
,您可以使用 getActivity() 或 getContext() 而不是使用它。 由于您使用的是片段,因此您不能将 this 关键字作为上下文传递。