2013-12-10 78 views
0

我有片段和artice列表。列表中的每个元素都与文章相关。这工作正常。但是,当我试图通过从外部活动ID替换文章中,我有一个错误:No view found for id for fragment无法替换片段。没有查看ID的片段

外部活动

ArticleMuralFragment newElement = new ArticleMuralFragment(); 
Bundle args = new Bundle(); 
args.putInt("ARG_POSITION", 7); 
newElement.setArguments(args); 

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
transaction.replace(R.id.map_container, newElement); 
transaction.addToBackStack(null); 
transaction.commit(); 

XML ArticleFragment

logcat的

12-10 20:05:28.866: E/FragmentManager(18952): No view found for id 0x7f050013 (com.urbanforms.main:id/fragment_container) for fragment ArticleMuralFragment{423009f8 #0 id=0x7f050013} 
12-10 20:05:28.866: E/FragmentManager(18952): Activity state: 
12-10 20:05:28.876: D/FragmentManager(18952): Local FragmentActivity 41fb0db0 State: 
12-10 20:05:28.876: D/FragmentManager(18952):  mCreated=truemResumed=true mStopped=false mReallyStopped=false 
12-10 20:05:28.876: D/FragmentManager(18952):  mLoadersStarted=true 
12-10 20:05:28.876: D/FragmentManager(18952): Active Fragments in 41fb1e58: 
12-10 20:05:28.876: D/FragmentManager(18952):  #0: ArticleMuralFragment{423009f8 #0 id=0x7f050013} 
12-10 20:05:28.876: D/FragmentManager(18952):  mFragmentId=#7f050013 mContainerId=#7f050013 mTag=null 
12-10 20:05:28.876: D/FragmentManager(18952):  mState=0 mIndex=0 mWho=android:fragment:0 mBackStackNesting=1 
12-10 20:05:28.876: D/FragmentManager(18952):  mAdded=true mRemoving=false mResumed=false mFromLayout=false mInLayout=false 
12-10 20:05:28.876: D/FragmentManager(18952):  mHidden=false mDetached=false mMenuVisible=true mHasMenu=false 
12-10 20:05:28.876: D/FragmentManager(18952):  mRetainInstance=false mRetaining=false mUserVisibleHint=true 
12-10 20:05:28.876: D/FragmentManager(18952):  mFragmentManager=FragmentManager{41fb1e58 in Map{41fb0db0}} 
12-10 20:05:28.876: D/FragmentManager(18952):  [email protected] 
12-10 20:05:28.876: D/FragmentManager(18952):  mArguments=Bundle[{ARG_POSITION=7}] 
12-10 20:05:28.876: D/FragmentManager(18952): Added Fragments: 
12-10 20:05:28.876: D/FragmentManager(18952):  #0: ArticleMuralFragment{423009f8 #0 id=0x7f050013} 
12-10 20:05:28.876: D/FragmentManager(18952): Back Stack Indices: 
12-10 20:05:28.876: D/FragmentManager(18952):  #0: BackStackEntry{423016c0 #0} 
12-10 20:05:28.876: D/FragmentManager(18952): FragmentManager misc state: 
12-10 20:05:28.876: D/FragmentManager(18952):  [email protected] 
12-10 20:05:28.886: D/FragmentManager(18952):  [email protected] 
12-10 20:05:28.886: D/FragmentManager(18952):  mCurState=5 mStateSaved=false mDestroyed=false 
12-10 20:05:28.886: D/FragmentManager(18952): View Hierarchy: 
12-10 20:05:28.886: D/FragmentManager(18952):  com.android.internal.policy.impl.PhoneWindow$DecorView{41fb3958 V.E..... ... 0,0-1280,736} 
12-10 20:05:28.886: D/FragmentManager(18952):  com.android.internal.widget.ActionBarOverlayLayout{41fb3fd0 V.ED.... ... 0,0-1280,736 #1020310 android:id/action_bar_overlay_layout} 
12-10 20:05:28.886: D/FragmentManager(18952):   android.widget.FrameLayout{41fb4bd8 V.E..... ... 0,108-1280,736 #1020002 android:id/content} 
12-10 20:05:28.886: D/FragmentManager(18952):   android.widget.RelativeLayout{41fbaa70 V.E..... ... 0,0-1280,628} 
12-10 20:05:28.886: D/FragmentManager(18952):    android.widget.FrameLayout{41fbea10 V.E..... ... 0,0-1280,628 #7f050014 app:id/map} 
12-10 20:05:28.886: D/FragmentManager(18952):    android.widget.FrameLayout{41f75178 V.E..... ... 0,0-1280,628} 
12-10 20:05:28.886: D/FragmentManager(18952):     maps.ae.i{41f7ebf0 VFED..C. ... 0,0-1280,628} 
12-10 20:05:28.886: D/FragmentManager(18952):     android.widget.RelativeLayout{41fffc58 V.E..... ... 0,0-1280,628} 
12-10 20:05:28.886: D/FragmentManager(18952):     android.widget.ImageView{41ffebf0 V.ED.... ... 7,593-82,621} 
12-10 20:05:28.886: D/FragmentManager(18952):     android.widget.RelativeLayout{41f86af0 V.E..... ... 0,0-1280,628} 
12-10 20:05:28.886: W/ResourceType(18952): No package identifier when getting name for resource number 0x00000002 
12-10 20:05:28.886: D/FragmentManager(18952):     android.view.View{42050988 V.ED..C. ... 1211,13-1267,69 #2} 
12-10 20:05:28.886: W/ResourceType(18952): No package identifier when getting name for resource number 0x00000003 
12-10 20:05:28.886: D/FragmentManager(18952):     android.widget.RelativeLayout{41ff3180 V.E..... ... 1267,82-1267,489 #3} 
12-10 20:05:28.886: D/FragmentManager(18952):      maps.bu.a{4205c660 G.ED..C. ... 0,0-0,0} 
12-10 20:05:28.886: W/ResourceType(18952): No package identifier when getting name for resource number 0x00000001 
12-10 20:05:28.886: D/FragmentManager(18952):     android.widget.LinearLayout{42047d70 V.E..... ... 1211,502-1267,608 #1} 
12-10 20:05:28.886: D/FragmentManager(18952):      android.view.View{4205eba8 V.ED..C. ... 0,0-56,53} 
12-10 20:05:28.886: D/FragmentManager(18952):      android.view.View{4204b6f8 V.ED..C. ... 0,53-56,106} 
12-10 20:05:28.896: D/FragmentManager(18952):   com.android.internal.widget.ActionBarContainer{41fb4fd0 V.ED.... ... 0,33-1280,108 #1020311 android:id/action_bar_container} 
12-10 20:05:28.896: D/FragmentManager(18952):   com.android.internal.widget.ActionBarView{41fb54d0 V.E..... ... 0,0-1280,75 #1020312 android:id/action_bar} 
12-10 20:05:28.896: D/FragmentManager(18952):    android.widget.LinearLayout{41fb5a38 VFE...C. ... 0,0-210,75} 
12-10 20:05:28.896: D/FragmentManager(18952):    com.android.internal.widget.ActionBarView$HomeView{41fb6ab8 V.E..... ... 0,0-65,75} 
12-10 20:05:28.896: D/FragmentManager(18952):     android.widget.ImageView{41fb6e48 V.ED.... ... 0,27-21,48 #102025a android:id/up} 
12-10 20:05:28.896: D/FragmentManager(18952):     android.widget.ImageView{41fb71a0 V.ED.... ... 17,16-60,59 #102002c android:id/home} 
12-10 20:05:28.896: D/FragmentManager(18952):    android.widget.LinearLayout{41fb8370 V.E..... ... 65,21-210,54} 
12-10 20:05:28.896: D/FragmentManager(18952):     android.widget.TextView{41fb8680 V.ED.... ... 0,0-134,33 #1020264 android:id/action_bar_title} 
12-10 20:05:28.896: D/FragmentManager(18952):     android.widget.TextView{41fb9300 G.ED.... ... 0,0-0,0 #1020265 android:id/action_bar_subtitle} 
12-10 20:05:28.896: D/FragmentManager(18952):    com.android.internal.view.menu.ActionMenuView{41ff6690 V.ED.... ... 1280,0-1280,75} 
12-10 20:05:28.896: D/FragmentManager(18952):   com.android.internal.widget.ActionBarContextView{41fb98d8 G.E..... ... 0,0-0,0 #1020313 android:id/action_context_bar} 
12-10 20:05:28.896: D/FragmentManager(18952):   com.android.internal.widget.ActionBarContainer{41fb9da0 G.ED.... ... 0,0-0,0 #1020314 android:id/split_action_bar} 
12-10 20:05:28.896: D/AndroidRuntime(18952): Shutting down VM 
12-10 20:05:28.896: W/dalvikvm(18952): threadid=1: thread exiting with uncaught exception (group=0x41801b90) 
12-10 20:05:28.906: E/AndroidRuntime(18952): FATAL EXCEPTION: main 
12-10 20:05:28.906: E/AndroidRuntime(18952): Process: com.urbanforms.main, PID: 18952 
12-10 20:05:28.906: E/AndroidRuntime(18952): java.lang.IllegalArgumentException: No view found for id 0x7f050013 (com.urbanforms.main:id/fragment_container) for fragment ArticleMuralFragment{423009f8 #0 id=0x7f050013} 
12-10 20:05:28.906: E/AndroidRuntime(18952): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:919) 
12-10 20:05:28.906: E/AndroidRuntime(18952): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) 
12-10 20:05:28.906: E/AndroidRuntime(18952): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 
12-10 20:05:28.906: E/AndroidRuntime(18952): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467) 
12-10 20:05:28.906: E/AndroidRuntime(18952): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440) 
12-10 20:05:28.906: E/AndroidRuntime(18952): at android.os.Handler.handleCallback(Handler.java:733) 
12-10 20:05:28.906: E/AndroidRuntime(18952): at android.os.Handler.dispatchMessage(Handler.java:95) 
12-10 20:05:28.906: E/AndroidRuntime(18952): at android.os.Looper.loop(Looper.java:137) 
12-10 20:05:28.906: E/AndroidRuntime(18952): at android.app.ActivityThread.main(ActivityThread.java:4998) 
12-10 20:05:28.906: E/AndroidRuntime(18952): at java.lang.reflect.Method.invokeNative(Native Method) 
12-10 20:05:28.906: E/AndroidRuntime(18952): at java.lang.reflect.Method.invoke(Method.java:515) 
12-10 20:05:28.906: E/AndroidRuntime(18952): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 
12-10 20:05:28.906: E/AndroidRuntime(18952): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 
12-10 20:05:28.906: E/AndroidRuntime(18952): at dalvik.system.NativeStart.main(Native Method) 
+0

你可以检查片段是否仍然附着,而你试图取代它? –

+0

没有。忘记它:)我在想,只有当容器中已经有一个片段时,我们才能取代某些东西。事实并非如此。抱歉。 –

+0

如果您删除“XML片段容器”中的TextView并将LinearLayout更改为FrameLayout,是否有帮助?最后,是tools:context =“MainActivity”的正确上下文吗? MainActivity中的ArticleMuralFragment()类是什么?如在内部课堂?如果它是独立的,那么上下文看起来很好。如果没有它必须是“.MainActivity $ ArticleMuralFragment” –

回答

0

我想打开Fragment的活动在XML文件中定义了片段要替换片段,片段必须以编程的方式定义

0

尝试索姆ething这样的:这里fragment_container:

class UploadNewProductFragment extends Fragment{ 
... 
... 
private void repaintThisFragment() { 
    FragmentManager fm = getActivity().getSupportFragmentManager(); 
    Fragment newFrame = new UploadNewProductFragment(); 
    fm.beginTransaction().replace(R.id.fragmentContainer, newFrame).commit(); 
} 
+0

我应该在哪里调用它? – Serafins

+0

我在同一个类中调用onActivityResult(...)方法。 – 5er

+0

你也可以将这段代码移入FragmentActivity。在方法onActivityResult(...) – 5er

1

你正试图把一个片段与ID的视图容器

FragmentTransaction transaction = getSupportFragmentManager() 
            .beginTransaction(); 
          transaction.replace(R.id.fragment_container, 
            newElement); 

但你可能有与id的视图。找到你想要这个片段的容器视图并给它android:id =“@ + id/fragment_container标记

+0

我有它,看看XML HeadlineFragment – Serafins

0

看起来你在代码和活动布局的FrameLayout id中使用了不同的片段ID,在代码中,你使用了“map_container”片段ID,但是stacktrace说:

No view found for id 0x7f050013 (com.urbanforms.main:id/fragment_container) for fragment ArticleMuralFragment 

你确定你使用相同的片段ID吗?因为我这样做时遇到同样的问题。帮助:)