Транзакция OnBackpressed Fragment не работает, но приложение закрывается - PullRequest
0 голосов
/ 09 мая 2020

Я реализовал код для закрытия приложения из вторичного Activity ... но во вторичном Activity также есть фрагменты, и проблема в том, что когда я прыгнул в какой-либо фрагмент и нажал кнопку возврата, приложение сразу закрывается .. моя цель - первый фрагмент -transaction's addToBackStack должен работать, затем приложение должно закрыться

Это код в методе UserActivity onBackPressed(), в котором я реализовал фрагменты:

public void onBackPressed() {
    DrawerLayout drawerLayout = findViewById(R.id.drawerLayout);
    if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
        drawerLayout.closeDrawer(GravityCompat.START);
    } else {
        Intent intent = new Intent(UserActivity.this, MainActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.putExtra("EXIT", true);
        startActivity(intent);
    }
}

Код ниже находится в методе MainActivity onCreate() to fini sh Activity:

if (getIntent().getBooleanExtra("EXIT",false)) {
    finish();
}

и вот фрагменты, помещенные в UserActivity:

@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
    Fragment fragment;
    switch (item.getItemId()) {
        case R.id.setting:
            fragment = new SettingFragment();
            break;
        case R.id.logOut:
            SharedPreference.setLoggedIn(this,null,false);

            Intent intent = new Intent(UserActivity.this,MainActivity.class);
            startActivity(intent);

        default:
            fragment = null;
    }
    FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
    fragmentTransaction.replace(R.id.userFragment,fragment).addToBackStack(null).commit();
    drawerLayout.closeDrawer(GravityCompat.START);
    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...