【问题标题】:How to use the Navigation Drawer to switch Activities[Android Studio]如何使用导航抽屉切换活动[Android Studio]
【发布时间】:2015-10-14 10:19:08
【问题描述】:

我在 Android Studio 1.4 中创建了一个导航抽屉活动。我的主要活动已经设置好,现在我想通过导航抽屉切换到另一个活动。第二个活动(AddDataActivity)应该收集一些用户输入来创建应该显示在我的主要活动列表视图中的字符串。 我的问题是,我不知道如何在不“丢失”我的导航抽屉的情况下打开 AddDataActivity。

Intent AddData = new Intent(MainActivity.this, AddDataActivity.class);
MainActivity.this.startActivity(AddData);

我是否必须为每个活动复制整个抽屉代码?还是使用 Fragments 会更好?

【问题讨论】:

  • 还是使用 Fragments 会更好? 是的
  • 所以我必须用 AddData Fragment 替换 AddDataActivity 并在我的 MainActivity 中调用 Fragment? - 只是为了我能做到这一点:P
  • 基本上,活动将是片段的容器,是的

标签: android android-activity navigation-drawer


【解决方案1】:

我现在使用 Fragments 来避免这种情况。

@SuppressWarnings("StatementWithEmptyBody")
     @Override
     public boolean onNavigationItemSelected(MenuItem item) {
         Fragment fragment;
         FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
         fragment = new ListViewFragment();
         int id = item.getItemId();

             if (id == R.id.nav_listview) {
                 fragment= new ListViewFragment();

             } else if (id == R.id.nav_add_data) {
                 fragment= new AddDataFragment();

             } else if (id == R.id.nav_settings) {
                 fragment= new SettingsFragment();

             } else if (id == R.id.nav_rooms) {
                 fragment= new SavedRoomsFragment();

             } else if (id == R.id.nav_legal_information) {
                 fragment = new LegalInformationFragment();
             }
         ft.replace(R.id.container, fragment);
         ft.addToBackStack(null);
         ft.commit();

         DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
         drawer.closeDrawer(GravityCompat.START);
         return true;
     }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多