2014-09-21 33 views
0

instanciationg片段类getSupportFragmentManager() - 未定义类型的上下文

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

    .... 

实际的类(MySimpleArrayAdapter)此代码的一部分,当我如何解决以下问题 - 延伸FragmentActivity - 需要从延伸该类另一类一个上下文(通过构造)。

都一样,我不能使用的情况下,如

infoFragment.show(context.getSupportFragmentManager(), "settings"); 

我得到的错误:方法getSupportFragmentManager()是未定义的类型语境。

有一个简单的解决这个问题?

回答

2

你有两个选择:

  • 首先,你可以调用getSupportFragmentManager()在FragmentActivity,将其保存为一个变量,并把它传递给你的适配器作为第二个构造函数参数。
  • 如果您确定Context对象始终是从FragmentActivity类派生的,则可以将Context对象转换为FragmentActivity。然后你可以调用方法,如((FragmentActivity) context).getSupportFragmentManager()

我希望帮助!

+0

非常感谢你 - 帮助! – java 2014-09-21 21:22:48

0

我相信这个方法只是定义了Activity类。另外,如果您决定将Activity实例传递到适配器,那不是一个好主意。考虑使用Observer模式的接口在Adapter和Activity之间进行通信。

相关问题