传递上下文作为DialogFragment的参数

gio*_*ozh 29 android android-context android-dialogfragment

可以将上下文变量传递给DialogFragment吗?

我在对话框中使用此代码来传递字符串:

public static ConfirmDialog newInstance( String f) {
    ConfirmDialog d = new ConfirmDialog();

    Bundle args = new Bundle();
    args.putString("FILE_NAME", f);
    d.setArguments(args);

    return d;
}
Run Code Online (Sandbox Code Playgroud)

但我找不到像putString这样的函数来传递上下文.有可能这样做吗?

A--*_*--C 63

DialogFragment有一个非常方便的方法来获取一个Context实例:

getActivity()
Run Code Online (Sandbox Code Playgroud)

Fragment#getActivity()将返回附加到的Activity(也就是a Context)的实例Fragment.在onAttach()调用Fragment之后使用它.下面的图表显示的Fragment生命周期,你可以看到,使用getActivity()onCreate()onDestroy()应该是一个有效的呼叫.

在此输入图像描述

有关更多信息,请阅读Fragment文档


小智 6

@Override
public void onAttach(Activity activity) {
    // TODO Auto-generated method stub
    super.onAttach(activity);
    context=activity;
}
Run Code Online (Sandbox Code Playgroud)

需要使用onAttach方法:for dialog Fragment