可以将上下文变量传递给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这样的传递上下文的函数。这是可能的吗?
发布于 2013-03-18 02:08:48
您的DialogFragment
有一个非常方便的方法来获取Context
实例:
getActivity()
Fragment#getActivity()
将返回Activity
的实例(这是一个Context
),Fragment
被附加到该实例。在调用片段的onAttach()
之后使用它。下面的图表说明了Fragment
lifecycle,如您所见,使用getActivity()
从onCreate()
到onDestroy()
应该是一个有效的调用。
有关详细信息,请阅读Fragment
文档
发布于 2014-06-17 15:10:16
@Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
super.onAttach(activity);
context=activity;
}
需要使用onAttach方法:对于对话框片段
发布于 2015-02-11 17:03:41
像这样使用:
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;
}
}
https://stackoverflow.com/questions/15464263
复制相似问题