2014-09-21 48 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之間進行通信。

相關問題