我创建了一个新View
课程.在那个课程中,我需要访问FragmentManager
,但我无法弄清楚如何.
我可以FragmentManager
从上下文中访问吗?
CustomView extends LinearLayout
Run Code Online (Sandbox Code Playgroud)
Dee*_*eeV 57
仅当给定的Context扩展Activity(After-Honeycomb)或FragmentActivity(pre-honeycomb)时.
在这种情况下,您必须100%确定它是使用反射或try-catch的活动.
try{
final Activity activity = (Activity) context;
// Return the fragment manager
return activity.getFragmentManager();
// If using the Support lib.
// return activity.getSupportFragmentManager();
} catch (ClassCastException e) {
Log.d(TAG, "Can't get the fragment manager with this");
}
Run Code Online (Sandbox Code Playgroud)
我以为我推荐重构,所以View
实际上只是为了显示内容而不应该实际修改应用程序的状态,但这是我的看法.
clo*_*ith 37
如果您使用支持片段,您可能实际上想要:
try {
FragmentManager fragmentManager = ((FragmentActivity) context).getSupportFragmentManager();
} catch (ClassCastException e) {
Log.e(TAG, "Can't get fragment manager");
}
Run Code Online (Sandbox Code Playgroud)
这对我有用:
Context mContext;
...
//Get FragmentManager
FragmentManager fragmentManager = ((Activity) mContext).getFragmentManager();
Run Code Online (Sandbox Code Playgroud)
(当然你必须首先初始化mContext)
归档时间: |
|
查看次数: |
57954 次 |
最近记录: |