Android 将上下文作为DialogFragment的参数传递
是否可以将上下文变量传递给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
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);
}