凤飞飞伸缩缝 2015-11-10 08:22 采纳率: 0%
浏览 1462

求帮忙,Android将ResideMenu引入fragment中,闪退

运行时,侧边栏出问题,把侧边栏放入fragment报错
11-10 15:56:57.416: E/AndroidRuntime(11739): FATAL EXCEPTION: main
11-10 15:56:57.416: E/AndroidRuntime(11739): Process: com.example.newtour, PID: 11739
11-10 15:56:57.416: E/AndroidRuntime(11739): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.newtour/com.example.newtour.MenuActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f080004 (com.example.newtour:id/fl_left_menu) for fragment LeftMenuFragment{443f5dc8 #0 id=0x7f080004}
11-10 15:56:57.416: E/AndroidRuntime(11739): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2187)
11-10 15:56:57.416: E/AndroidRuntime(11739): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2236)
11-10 15:56:57.416: E/AndroidRuntime(11739): at android.app.ActivityThread.access$800(ActivityThread.java:138)
11-10 15:56:57.416: E/AndroidRuntime(11739): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)
11-10 15:56:57.416: E/AndroidRuntime(11739): at android.os.Handler.dispatchMessage(Handler.java:102)
11-10 15:56:57.416: E/AndroidRuntime(11739): at android.os.Looper.loop(Looper.java:136)
11-10 15:56:57.416: E/AndroidRuntime(11739): at android.app.ActivityThread.main(ActivityThread.java:5014)
11-10 15:56:57.416: E/AndroidRuntime(11739): at java.lang.reflect.Method.invokeNative(Native Method)
11-10 15:56:57.416: E/AndroidRuntime(11739): at java.lang.reflect.Method.invoke(Method.java:515)
11-10 15:56:57.416: E/AndroidRuntime(11739): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:805)
11-10 15:56:57.416: E/AndroidRuntime(11739): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:621)
11-10 15:56:57.416: E/AndroidRuntime(11739): at dalvik.system.NativeStart.main(Native Method)
11-10 15:56:57.416: E/AndroidRuntime(11739): Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f080004 (com.example.newtour:id/fl_left_menu) for fragment LeftMenuFragment{443f5dc8 #0 id=0x7f080004}
11-10 15:56:57.416: E/AndroidRuntime(11739): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:919)
11-10 15:56:57.416: E/AndroidRuntime(11739): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
11-10 15:56:57.416: E/AndroidRuntime(11739): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
11-10 15:56:57.416: E/AndroidRuntime(11739): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460)
11-10 15:56:57.416: E/AndroidRuntime(11739): at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:556)
11-10 15:56:57.416: E/AndroidRuntime(11739): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
11-10 15:56:57.416: E/AndroidRuntime(11739): at android.app.Activity.performStart(Activity.java:5261)
11-10 15:56:57.416: E/AndroidRuntime(11739): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2160)
11-10 15:56:57.416: E/AndroidRuntime(11739): ... 11 more

如果把侧边栏放入fragment注释就可以运行,主页面放入fragment没有问题
public class MenuActivity extends FragmentActivity implements OnClickListener {

private ResideMenu resideMenu;
private MenuActivity mContext;

/**
 * Called when the activity is first created.
 */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mContext = this;
    setUpMenu();
    initFragment();

}
private void initFragment(){
    FragmentManager fm=getSupportFragmentManager();
    FragmentTransaction transaction=fm.beginTransaction();
    //transaction.replace(R.id.fl_left_menu, new LeftMenuFragment());
    transaction.replace(R.id.fl_mm, new ContentFragment());
    transaction.commit();
}
private void setUpMenu() {

    // attach to current activity;
    resideMenu = new ResideMenu(this);
    resideMenu.setBackground(R.drawable.pc_001);//侧滑栏背景图
    resideMenu.attachToActivity(this);
    resideMenu.setMenuListener(menuListener);

    // create menu items;
    String titles[] = { "北京", "上海", "广州", "深圳","四川","香港","大连","成都","洛阳","福建","天津","厦门" };
    //,"四川","香港","大连","成都","洛阳"
    int icon[] = { R.drawable.icon_home, R.drawable.icon_profile,
            R.drawable.icon_calendar, R.drawable.icon_settings ,R.drawable.icon_profile
,R.drawable.icon_calendar,R.drawable.icon_profile,R.drawable.icon_profile,R.drawable.icon_calendar
,R.drawable.icon_calendar,R.drawable.icon_calendar,R.drawable.icon_calendar};

    for (int i = 0; i < titles.length; i++) {
        ResideMenuItem item = new ResideMenuItem(this, icon[i], titles[i]);
        item.setOnClickListener(this);
        resideMenu.addMenuItem(item);
    }

    // add gesture operation's ignored views

}

@Override
public void onClick(View view) {
    resideMenu.closeMenu();
}

private ResideMenu.OnMenuListener menuListener = new ResideMenu.OnMenuListener() {
    @Override
    public void openMenu() {

    }

    @Override
    public void closeMenu() {

    }
};


@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    return resideMenu.onInterceptTouchEvent(ev)
            || super.dispatchTouchEvent(ev);
}

}

  • 写回答

4条回答 默认 最新

  • 垂天云 2015-11-11 09:45
    关注

    java.lang.IllegalArgumentException: No view found for id 0x7f080004 (com.example.newtour:id/fl_left_menu) for fragment LeftMenuFragment{443f5dc8 #0 id=0x7f080004}
    这个异常是由于你的menuFragment里面xml里没有引入 (com.example.newtour:id/fl_left_menu)导致的,代码里写进去的id要和布局里面的对应上。

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算