Так что я использую навигационный ящик, который является моим MainActivity. Когда я нажимаю на один из вариантов, он должен выполнить действие, которое показывает список событий. Меню ящика должно быть видно сверху.
В данный момент он открывает список действий поверх MainActivity, чтобы они были отдельными и не отображались одновременно, как вы можете видеть на следующих снимках экрана:
Навигационный ящик 1
Активность в списке событий 2
Это MainActivity, отображаемое после закрытия окна активности в списке событий при нажатии кнопки возврата 3
Это мой MainActivity и с помощью метода selectDrawerItem он перемещается к различным действиям:
public class MainActivity extends AppCompatActivity {
private DrawerLayout mDrawer;
private Toolbar toolbar;
private NavigationView nvDrawer;
// Make sure to be using androidx.appcompat.app.ActionBarDrawerToggle version.
private ActionBarDrawerToggle drawerToggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Set a Toolbar to replace the ActionBar.
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
// This will display an Up icon (<-), we will replace it with hamburger later
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// Find our drawer view
mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawerToggle = setupDrawerToggle();
// Setup toggle to display hamburger icon with nice animation
drawerToggle.setDrawerIndicatorEnabled(true);
drawerToggle.syncState();
// Tie DrawerLayout events to the ActionBarToggle
mDrawer.addDrawerListener(drawerToggle);
// Find our drawer view
nvDrawer = (NavigationView) findViewById(R.id.nvView);
// Setup drawer view
setupDrawerContent(nvDrawer);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
drawerToggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Pass any configuration change to the drawer toggles
drawerToggle.onConfigurationChanged(newConfig);
}
private ActionBarDrawerToggle setupDrawerToggle() {
// NOTE: Make sure you pass in a valid toolbar reference. ActionBarDrawToggle() does not require it
// and will not render the hamburger icon without it.
return new ActionBarDrawerToggle(this, mDrawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
}
private void setupDrawerContent(NavigationView navigationView) {
navigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
selectDrawerItem(menuItem);
return true;
}
});
}
public void selectDrawerItem(MenuItem menuItem) {
// Create a new fragment and specify the fragment to show based on nav item clicked
FragmentActivity fragmentActivity = null;
Intent intent = null;
switch(menuItem.getItemId()) {
case R.id.nav_first_fragment:
intent = new Intent(MainActivity.this, Activity1.class);
startActivity(intent);
break;
case R.id.nav_second_fragment:
intent = new Intent(MainActivity.this, Activity2.class);
startActivity(intent);
break;
case R.id.nav_third_fragment:
intent = new Intent(MainActivity.this, Activity3.class);
startActivity(intent);
break;
default:
intent = new Intent(MainActivity.this, Activity1.class);
startActivity(intent);
}
// Highlight the selected item has been done by NavigationView
menuItem.setChecked(true);
// Set action bar title
setTitle(menuItem.getTitle());
// Close the navigation drawer
mDrawer.closeDrawers();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
/*// The action bar home/up action should open or close the drawer.
switch (item.getItemId()) {
case android.R.id.home:
mDrawer.openDrawer(GravityCompat.START);
return true;
}*/
if (drawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Так что в основном я хочу открыть то, что вы видите в № 2 в № 3. Как мне это сделать? Я уже пытался использовать фрагменты, но это должно быть действие из-за того, как приложение будет работать позже. Так что это не вариант.
(Android Начинающий, между прочим: °))
Спасибо!