我的前端有一个DrawerLayout,后端代码有一个NavigationView。
我有3个Activity,MainActivity(包含DrawerLayout),TrainActivity,SettingActivity。
当我想从Main导航时 - >训练,我只是启动意图而不是完成MainActivity(因为MainActivity包含googlemap)。我将MainActivity保存到backstack中。
导航Main后 - >训练,然后在TrainActivity我想导航回MainActivity(onBackPressed或任何方法)。
问题是当我选择Train或SettingActivity时,MainActivity上的NavigationView无法启动意图。
导航场景Main - >火车 - >主要 - >设置/训练,但我得到的是Main - >火车 - > (返回主页) - >无法再次选择NavigationView(NavigationView上的检查菜单)。
以下是代码:
private void setupDrawerContent(NavigationView navigationView) {
initNavigationProfile();
navigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
menuItem.setChecked(true);
mDrawerLayout.closeDrawers();
final Context context = getBaseContext();
final Handler handler = new Handler();
switch (menuItem.getItemId()) {
case R.id.map_home:
showLoadingBar();
final Intent mainIntent = new Intent(getApplicationContext(), MainActivity.class);
handler.postDelayed(new Runnable() {
@Override
public void run() {
mainIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(mainIntent);
handler.removeCallbacks(this);
hideLoadingBar();
finish();
}
}, 300L);
break;
case R.id.train_schedule:
showLoadingBar();
final Intent trainIntent = new Intent(getApplicationContext(), TrainScheduleActivity.class);
handler.postDelayed(new Runnable() {
@Override
public void run() {
trainIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(trainIntent);
handler.removeCallbacks(this);
hideLoadingBar();
finish();
}
}, 300L);
break;
这里的代码是onbackPressed();
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
super.onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
我对导航视图无法选择任何项目的原因一无所知。