android– 错误交换添加XML片段

android– 错误交换添加XML片段,第1张

概述我几天来一直在努力使用Android3.0SDK的片段概念,并且认为我会尝试使用StackOverflow….我有一个简单的(概念证明)应用程序:这是我的主要布局:<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apkes/android"andro

我几天来一直在努力使用Android 3.0 SDK的片段概念,并且认为我会尝试使用StackOverflow ….

我有一个简单的(概念证明)应用程序:

这是我的主要布局:

<?xml version="1.0" enCoding="utf-8"?><relativeLayout  xmlns:androID="http://schemas.androID.com/apk/res/androID"  androID:layout_wIDth="match_parent"  androID:layout_height="match_parent">    <relativeLayout androID:ID="@+ID/relativeLayout1" androID:layout_alignParentBottom="true" androID:layout_wIDth="match_parent" androID:layout_height="200dp"><fragment androID:name="com.owentech.simplefragmentswap.staticfragment"            androID:ID="@+ID/fragment1" androID:layout_weight="1"            androID:layout_height="wrap_content" androID:layout_wIDth="fill_parent"/></relativeLayout><FrameLayout androID:ID="@+ID/frameLayout1" androID:layout_height="wrap_content"      androID:layout_alignParenttop="true" androID:layout_wIDth="match_parent"    androID:layout_above="@+ID/relativeLayout1"></FrameLayout></relativeLayout>

我直接在XML中显示一个片段(staticfragment),这很好用.

使用framelayout我想在create上添加一个XML片段(fragment1).

这是片段1:

<?xml version="1.0" enCoding="utf-8"?><relativeLayout  xmlns:androID="http://schemas.androID.com/apk/res/androID"  androID:layout_wIDth="match_parent"  androID:layout_height="match_parent">  <button androID:layout_height="wrap_content" androID:ID="@+ID/button1" androID:layout_alignParenttop="true" androID:layout_wIDth="match_parent" androID:text="Fragment 1"></button></relativeLayout>

这是我的主要活动:

import androID.app.Activity;import androID.os.Bundle;import androID.support.v4.app.Fragment;import androID.support.v4.app.FragmentActivity;import androID.support.v4.app.FragmentTransaction;public class mainActivity extends FragmentActivity {/** Called when the activity is first created. */@OverrIDepublic voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.main); // Create new fragment and transaction    Fragment newFragment = new fragment1();    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();    // Replace whatever is in the fragment_container vIEw with this fragment,    // and add the transaction to the back stack    //transaction.replace(R.ID.frameLayout1, newFragment);    transaction.add(R.ID.frameLayout1, newFragment);    transaction.addToBackStack(null);    // Commit the transaction    transaction.commit();}}

这会导致力在启动时关闭.

这是logcat:

05-18 09:49:23.073: INFO/ActivityManager(71): Starting activity: Intent { act=androID.intent.action.MAIN cat=[androID.intent.category.LAUNCHER] flg=0x10000000 cmp=com.owentech.simplefragmentswap/.mainActivity }05-18 09:49:23.313: INFO/ActivityManager(71): Start proc com.owentech.simplefragmentswap for activity com.owentech.simplefragmentswap/.mainActivity: pID=451 uID=10036 gIDs={1015}05-18 09:49:23.324: DEBUG/AndroIDRuntime(445): Shutting down VM05-18 09:49:23.333: DEBUG/dalvikvm(445): DeBUGger has detached; object registry had 1 entrIEs05-18 09:49:23.404: INFO/AndroIDRuntime(445): NOTE: attach of thread 'Binder Thread #3' Failed05-18 09:49:24.433: DEBUG/AndroIDRuntime(451): Shutting down VM05-18 09:49:24.433: WARN/dalvikvm(451): threadID=1: thread exiting with uncaught exception (group=0x4001d800)05-18 09:49:24.473: ERROR/AndroIDRuntime(451): FATAL EXCEPTION: main**05-18 09:49:24.473: ERROR/AndroIDRuntime(451): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.owentech.simplefragmentswap/com.owentech.simplefragmentswap.mainActivity}: java.lang.IllegalStateException: The specifIEd child already has a parent. You must call removeVIEw() on the child's parent first.**05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2663)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.app.ActivityThread.access00(ActivityThread.java:125)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.os.Handler.dispatchMessage(Handler.java:99)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.os.Looper.loop(Looper.java:123)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.app.ActivityThread.main(ActivityThread.java:4627)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at java.lang.reflect.Method.invokeNative(Native Method)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at java.lang.reflect.Method.invoke(Method.java:521)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:626)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at dalvik.system.NativeStart.main(Native Method)05-18 09:49:24.473: ERROR/AndroIDRuntime(451): Caused by: java.lang.IllegalStateException: The specifIEd child already has a parent. You must call removeVIEw() on the child's parent first.05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.vIEw.VIEwGroup.addVIEwInner(VIEwGroup.java:1970)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.vIEw.VIEwGroup.addVIEw(VIEwGroup.java:1865)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.vIEw.VIEwGroup.addVIEw(VIEwGroup.java:1822)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.vIEw.VIEwGroup.addVIEw(VIEwGroup.java:1802)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.support.v4.app.NoSaveStateFrameLayout.wrap(NoSaveStateFrameLayout.java:40)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.support.v4.app.FragmentManagerImpl.movetoState(FragmentManager.java:743)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.support.v4.app.FragmentManagerImpl.movetoState(FragmentManager.java:933)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.support.v4.app.FragmentManagerImpl.movetoState(FragmentManager.java:916)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.support.v4.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:1587)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:500)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.app.Activity.performStart(Activity.java:3781)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2636)05-18 09:49:24.473: ERROR/AndroIDRuntime(451):     ... 11 more05-18 09:49:24.494: WARN/ActivityManager(71):   Force finishing activity com.owentech.simplefragmentswap/.mainActivity

有没有人知道我做错了什么,因为我直接从developer.androID.com获取了代码

谢谢

解决方法:

对不起,找到了答案.当我在fragment1.java中膨胀视图时,它被附加到root.将最后一个标志改为false,现在好了.

总结

以上是内存溢出为你收集整理的android – 错误交换/添加XML片段全部内容,希望文章能够帮你解决android – 错误交换/添加XML片段所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1096091.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存