2017-11-21 12 views
-1

誰かが助けてくれることを願っています。 staticメソッドでフラグメントマネージャにアクセスする必要がある非アクティビティクラスがあります。残念ながら、コンテキストを正しく渡す方法がわかりません。すべてのヘルプは高く評価され非アクティビティクラスのgetSupportFragmentManagerにアクセスする

非アクティビティクラス:

public class testClass { 
.. 
public synchronized static void checkNewdata(List<data>input, Context context) { 
.. 
     FragmentManager ft = ((FragmentActivity)???).getSupportFragmentManager(); 
       DialogFragment newFragment = MyNotification.newInstance(); 
       newFragment.setCancelable(false); 
       newFragment.show(ft, "mydialog"); 
.. 
    } 
} 

私はコンテキストを渡すためにしようとしているcheckNewdataも非活動クラスから呼び出されるメソッドが、このdoesnの `tの仕事:

public class SearchResponse extends SuccessResponse { 

private Context mcontext; 

public SearchResponse(Context context){ 
    mcontext = context; 
} 
.. 
@Override 
    public void save() { 
.. 
    testClass.checkNewdata(mainData, context); 
.. 
    } 
} 
+0

静的メソッドで 'Context'リファレンスを保持することは悪い考えです。回避策を探すのではなく、デザインを再考することをお勧めします。 –

答えて

1

は、あなたの活動の代わりに、コンテキスト

を渡します
+0

Thx、私は使用しました: プライベート活動活動; public SearchResponse(アクティビティアクティビティ){ this.activity = activity; } しかし、アプリケーションがクラッシュする:クラスのコンバータを作成できません。 retrofit。 – Simon

+0

解決済み、もう一度 – Simon

関連する問題