如何使用Navigation Drawer切换Activities[Android Studio]
How to use the Navigation Drawer to switch Activities[Android Studio]
我在 Android Studio 1.4 中创建了导航抽屉 Activity。我的 Main Activity 已经设置好,现在我想通过 Navigation Drawer 切换到另一个 Activity。第二个 Activity (AddDataActivity) 应该收集一些 User Unputs 来创建应该显示在我的 Main Activities ListView 中的字符串。
我的问题是,如果没有 "loosing" 我的导航抽屉,我不知道如何打开 AddDataActivity。
Intent AddData = new Intent(MainActivity.this, AddDataActivity.class);
MainActivity.this.startActivity(AddData);
我是否必须为每个 Activity 复制整个抽屉代码?还是使用 Fragments 会更好?
我现在用 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;
}
我在 Android Studio 1.4 中创建了导航抽屉 Activity。我的 Main Activity 已经设置好,现在我想通过 Navigation Drawer 切换到另一个 Activity。第二个 Activity (AddDataActivity) 应该收集一些 User Unputs 来创建应该显示在我的 Main Activities ListView 中的字符串。 我的问题是,如果没有 "loosing" 我的导航抽屉,我不知道如何打开 AddDataActivity。
Intent AddData = new Intent(MainActivity.this, AddDataActivity.class);
MainActivity.this.startActivity(AddData);
我是否必须为每个 Activity 复制整个抽屉代码?还是使用 Fragments 会更好?
我现在用 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;
}