Android 将上下文作为DialogFragment的参数传递

Android 将上下文作为DialogFragment的参数传递,android,android-dialogfragment,android-context,Android,Android Dialogfragment,Android Context,是否可以将上下文变量传递给DialogFragment 我在对话框中使用了以下代码来传递字符串: public static ConfirmDialog newInstance( String f) { ConfirmDialog d = new ConfirmDialog(); Bundle args = new Bundle(); args.putString("FILE_NAME", f); d.setArguments(args); retur

是否可以将上下文变量传递给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;
}

但我找不到任何像putString这样的传递上下文的函数。可以这样做吗?

您的
对话框片段
有一个非常方便的方法来获取
上下文
实例:

getActivity()
将返回
片段
附加到的
活动
(它是
上下文
)的实例。在调用片段的
onAttach()
后使用它。如您所见,下表说明了使用
getActivity()
onCreate()
onDestroy()
应该是有效的调用

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

@Override
public void onAttach(Activity activity) {
    // TODO Auto-generated method stub
    super.onAttach(activity);
    context=activity;
}
需要使用onAttach方法:对于对话框片段

使用如下方法:

public class Dialog extends DialogFragment implements OnClickListener {
    public void onClick(View v) {
    switch (v.getId()) {
        case R.id.message: {
            this.startActivity(new Intent(context, Login.class));
                                 //or use getActivity() instead of context
            }
            break;
         }
    }
    @Override
    public void onAttach(Activity activity) {
        // TODO Auto-generated method stub
        super.onAttach(activity);
        context=activity;
    }
}
onAttach(活动)现在已被弃用

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
}

改用onAttach(上下文)

首先调用show()方法,getActivity()为null。那么,我怎样才能获得上下文呢?
@Override
public void onAttach(Context context) {
    super.onAttach(context);
}