当前位置:编程学习 > wap >>

新人求助,关于fragment的嵌套替换问题

这个是代码:
public class SampleListFragment extends ListFragment{
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.list, null);
}

public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
String[] args = getResources().getStringArray(R.array.color_names_red);
ArrayAdapter<String> array = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,
android.R.id.text1,args);
setListAdapter(array);

}         
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
FragmentManager manager;
FragmentTransaction transation;
manager = getChildFragmentManager();  
transation = manager.beginTransaction(); 
switch(position){
case 0:{
        SampleListFragment1 fra = new SampleListFragment1();  
        transation.replace(R.id.menu_frame1, fra);  
        transation.addToBackStack(null);  
        transation.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);  
        transation.commit(); 
我想在点击事件中替换掉当前的fragment,但是老是报错,报错log如下:
java.lang.IllegalArgumentException: No view found for id 0x7f040038 (com.yangyu.myslidingmenudemo02:id/menu_frame1) for fragment SampleListFragment1{423ba350 #1 id=0x7f040038}
09-29 19:05:31.555: E/AndroidRuntime(1816):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:903)
09-29 19:05:31.555: E/AndroidRuntime(1816):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
09-29 19:05:31.555: E/AndroidRuntime(1816):  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
09-29 19:05:31.555: E/AndroidRuntime(1816):  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
09-29 19:05:31.555: E/AndroidRuntime(1816):  at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429)
09-29 19:05:31.555: E/AndroidRuntime(1816):  at android.os.Handler.handleCallback(Handler.java:615)
09-29 19:05:31.555: E/AndroidRuntime(1816):  at android.os.Handler.dispatchMessage(Handler.java:92)
09-29 19:05:31.555: E/AndroidRuntime(1816):  at android.os.Looper.loop(Looper.java:153)
09-29 19:05:31.555: E/AndroidRuntime(1816):  at android.app.ActivityThread.main(ActivityThread.java:5086)
09-29 19:05:31.555: E/AndroidRuntime(1816):  at java.lang.reflect.Method.invokeNative(Native Method)
09-29 19:05:31.555: E/AndroidRuntime(1816):  at java.lang.reflect.Method.invoke(Method.java:511)
09-29 19:05:31.555: E/AndroidRuntime(1816):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821)
09-29 19:05:31.555: E/AndroidRuntime(1816):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
09-29 19:05:31.555: E/AndroidRuntime(1816):  at dalvik.system.NativeStart.main(Native Method)
求大牛帮忙指导······ fragment --------------------编程问答-------------------- 顶一下,求高手 --------------------编程问答-------------------- 提示找不到R.id.menu_frame1这个id对应的View,你看一下是不是敲错了。 --------------------编程问答--------------------
引用 2 楼 tantahe 的回复:
提示找不到R.id.menu_frame1这个id对应的View,你看一下是不是敲错了。

程序是可以运行的,但是只要点击才会出错···· --------------------编程问答-------------------- 定义R.id.menu_frame1的xml和R.java贴上来看看。 --------------------编程问答-------------------- xml文件:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/menu_frame1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
这个是在R文件里面的:
     public static final int menu_frame1=0x7f040038; --------------------编程问答-------------------- 因为加了个slidingmenu,所以R文件比较大,就不全贴上来了 --------------------编程问答-------------------- 你这不对啊,menu_frame1是菜单吧?你不是点菜单替换content_frame吗?如果只是个名字而已可能
不认识menu_frame1你加一句setContentView(R.layout.menu_frame1);
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,