Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带有活动而不是片段的导航抽屉_Android_Android Fragments_Navigation Drawer - Fatal编程技术网

Android 带有活动而不是片段的导航抽屉

Android 带有活动而不是片段的导航抽屉,android,android-fragments,navigation-drawer,Android,Android Fragments,Navigation Drawer,我所拥有的是我使用导航抽屉制作的左侧导航菜单,它可以很好地处理片段,我有五个按钮,每个按钮打开一个片段,但现在我希望每个案例打开一个活动而不是片段,我尝试使用intent来做,但没有成功!! 这是我的密码: private void displayView(int position) { // update the main content by replacing fragments android.app.Fragment fragment = null;

我所拥有的是我使用导航抽屉制作的左侧导航菜单,它可以很好地处理片段,我有五个按钮,每个按钮打开一个片段,但现在我希望每个案例打开一个活动而不是片段,我尝试使用intent来做,但没有成功!! 这是我的密码:

private void displayView(int position) {
        // update the main content by replacing fragments
        android.app.Fragment fragment = null;
        switch (position) {
        case 0:
            //fragment = new HomeFragment();
//          Intent i=new Intent(MainActivity.this,MainActivity.class);
//          startActivity(i);
            break;
        case 1:
            //fragment = new FindPeopleFragment();
            break;
        case 2:
            //fragment = new PhotosFragment();
            break;
        case 3:
            //fragment = new CommunityFragment();
            break;
        case 4:
            //fragment = new PagesFragment();
            break;
        case 5:
            //fragment = new WhatsHotFragment();
            break;

        default:
            break;
        }

        if (fragment != null) {
            FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.beginTransaction()
                    .replace(R.id.frame_container, fragment).commit();

            // update selected item and title, then close the drawer
            mDrawerList.setItemChecked(position, true);
            mDrawerList.setSelection(position);
            setTitle(navMenuTitles[position]);
            mDrawerLayout.closeDrawer(mDrawerList);
        } else {
            // error in creating fragment
            Log.e("MainActivity", "Error in creating fragment");
        }
    }

那么,我应该在代码中做些什么更改,以便它可以打开一个活动而不是片段???有人能帮我吗?

您需要更改函数,以便在某些情况下加载类片段,在其他情况下加载类活动

case 0:
activity = new MyActivity();
fragment = null;
break;
case 1:
fragment = new MyFragment();
activity = null;
break;  

if (fragment != null) {
  FragmentManager fragmentManager = getFragmentManager();
  fragmentManager.beginTransaction().replace(R.id.frame_container, (android.app.Fragment) fragment).commit();
  setTitle(menutitles[position]);
  mDrawerLayout.closeDrawer(mDrawerList);
}else {
  if(activity != null) {
     Intent i1 = new Intent(MainActivity.this, activity.getClass());
     i1.putExtra(EXTRA_MESSAGE, position);
     startActivity(i1);  
     setTitle(menutitles[position]);
     mDrawerLayout.closeDrawer(mDrawerList);
  }
}

请您发布Logcat中的错误:

我首先要检查的是:

Manifest.xml中的活动是否声明为活动? 其次,检查调用活动是否有意图,而不是片段 这就是正确开始活动的方式

Intent intent = new Intent(mActivity, class1); // class1 The class to open
startActivity(intent);

但它不起作用-当您尝试它时发生了什么?当我尝试在emulator上运行它时。。一个黑屏出现在logcat上,它说即使我没有尝试构建片段,也无法构建片段我的意思是else语句有效请提供完整的logcat错误请发布logcat。您似乎走对了轨道。在尝试重新开始时,您能不能发布logcat错误意图:我应该将活动配置为什么?我不知道懂你能解释一下你的评论吗?在logcat中我一直看到一个黑屏,上面写着:跳过231帧!应用程序可能在其主线程上做了太多的工作;请记住,MyActivity类需要扩展活动