如何将返回按钮(箭头)链接到之前的活动?

问题描述 投票:0回答:1

我是android开发的新手,在锻炼中不断学习。所以,我正在开发一个带有导航抽屉的应用程序,其中有菜单按钮。除此之外,我还想在每个片段中添加返回(箭头)按钮,以返回到以前的活动。为了做到这一点,我在每个片段中使用了以下代码,但它不工作。后退按钮总是返回到导航抽屉,而不是前一个片段。

Toolbar toolbar=rootView.findViewById(R.id.toolbar);
 final ActionBar actionBar=((AppCompatActivity)getActivity()).getSupportActionBar();
 actionBar.setDisplayHomeAsUpEnabled(true);
 actionBar.getTitle();

我探索并阅读了许多与后退按钮和导航抽屉问题相关的评论,比如在 此处, 此处, 此处, 此处以及许多其他的问题。 我尝试了不同的解决方案,但问题依然存在。公共boolean onOptionsItemSelected(MenuItem item)没有任何作用。

下面是我的MainActivity的样子

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

    private DrawerLayout drawer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toolbar toolbar=findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        drawer=findViewById(R.id.drawer_layout);
        NavigationView navigationView=findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);

        ActionBarDrawerToggle toggle=new ActionBarDrawerToggle(this,drawer,toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        toggle.syncState();

        if(savedInstanceState==null){
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new HomeFragment()).commit();
            navigationView.setCheckedItem(R.id.nav_home);}

    }



    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
         switch (menuItem.getItemId()){
            case R.id.nav_home:
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new HomeFragment()).addToBackStack(null).commit();
                break;
            case R.id.nav_help:

                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new HelpFragment()).addToBackStack(null).commit();
                break;
            case R.id.nav_about:
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new AboutFragment()).addToBackStack(null).commit();
                break;
        }

        drawer.closeDrawer(GravityCompat.START);
        return true;
    }   
}
android android-actionbar fragment navigation-drawer back-button
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.