getSupportFragmentManager()-对于上下文类型未定义

jav*_*ava 1 android android-context android-fragments

实例化Fragment类时如何解决以下问题

holder.infoView.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) {
       Fragment infoFragment = new ExampleFragment();
                    infoFragment.show(context.getSupportFragmentManager(), "settings");

     ....
Run Code Online (Sandbox Code Playgroud)

该代码所属的实际类(MySimpleArrayAdapter)- 扩展FragmentActivity- 但从扩展该类的另一个类中获取上下文(通过构造函数)。

完全一样,我不能使用诸如

 infoFragment.show(context.getSupportFragmentManager(), "settings");
Run Code Online (Sandbox Code Playgroud)

我收到错误:方法Context类型的getSupportFragmentManager()未定义。

是否有解决此问题的简单方法?

Pho*_*oca 7

您有两种选择:

  • 首先,您可以调用getSupportFragmentManager()FragmentActivity,将其另存为变量,然后将其作为第二个构造函数参数传递给适配器。
  • 当确定上下文对象始终是从FragmentActivity类派生时,可以将Context对象转换为FragmentActivity。然后,您可以调用方法,例如 ((FragmentActivity) context).getSupportFragmentManager()

希望对您有所帮助!