在非activity类中获取getSupportFragmentManager

7
我希望有人能够帮助。 我有一个非活动类,在其中我需要在静态方法中访问fragmentmanager,但不幸的是,我不知道如何正确地传递上下文。 感谢任何帮助。
非活动类:
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也被从非活动类中调用,在这个类中我试图传递上下文,但这不起作用:

public class SearchResponse extends SuccessResponse {

private Context mcontext;

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

在静态方法中持有Context引用是一个不好的想法。我建议您重新考虑设计,而不是寻找解决方法。 - Neria Nachum
1个回答

7

传入Activity参数而不是Context

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

谢谢,我使用了以下代码:private Activity activity;public SearchResponse(Activity activity) { this.activity = activity; }但是现在应用程序崩溃了:无法为类创建转换器... retrofit。 - Simon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接