我已经从这个How do I add a Fragment to an Activity with a programmatically created content view开始@H_502_1@
在活动中创建和添加片段.@H_502_1@
但是,当我尝试在动态视图中添加相同的片段时,它失败了.@H_502_1@
您能解决其背后的问题吗?@H_502_1@
@H_502_1@
public class MainActivity extends FragmentActivity { private static final int CONTENT_VIEW_ID = 10101010; private static final int CONTENT_VIEW_ID1 = 10101011; public FragmentManager fm = getSupportFragmentManager(); @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); VIEw vIEw = new VIEw(this); FrameLayout frame = new FrameLayout(this); frame.setID(CONTENT_VIEW_ID); frame.addVIEw(vIEw,new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); vIEw.setID(CONTENT_VIEW_ID1); setContentVIEw(frame); if (savedInstanceState == null) { Fragment newFragment1 = new DeBUGExampleTwoFragment(); FragmentTransaction ft = fm.beginTransaction(); ft.add(CONTENT_VIEW_ID1, newFragment1); ft.commit(); }public static class DeBUGExampleTwoFragment extends Fragment { public static int count = 0; @OverrIDe public VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container, Bundle savedInstanceState) { VIEw v = new VIEw(getActivity()); v.setBackgroundcolor(color.RED); return v; } }
它因ClassCastException失败而没有显示确切的行号.@H_502_1@
解决方法:@H_502_1@
您可能会收到这样的消息:@H_502_1@
@H_502_1@
java.lang.classCastException: androID.vIEw.VIEw cannot be cast to
androID.vIEw.VIEwGroup@H_502_1@
这是因为可以将片段插入VIEwGroup或从VIEwGroup继承的片段中.您无法将片段插入VIEw.要使您的代码运行,请更改此行:@H_502_1@
@H_502_1@
VIEw vIEw = new VIEw(this);
例如,@H_502_1@
@H_502_1@
FrameLayout vIEw = new FrameLayout(this);//FrameLayout inherits from VIEwGroup
总结 以上是内存溢出为你收集整理的android-在视图内部动态添加片段全部内容,希望文章能够帮你解决android-在视图内部动态添加片段所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)