Fragment 中的 this 关键字没有得到实现,而

问题描述

我创建了两个 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 关键字作为上下文传递。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...