有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java保存碎片以防被破坏或隐藏,并更改徽章编号

我有一个主要的活动,当我改变方向时,我加载了几个片段,当前片段被销毁,默认片段被加载,我还想从片段中更改徽章编号,但我不知道怎么做。请帮我保存碎片的状态

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar;
    toolbar = (Toolbar) findViewById(R.id.my_nav_bar);

    toolbar.setTitleTextColor(getResources().getColor(R.color.text_white));
    setSupportActionBar(toolbar);


    navigationView = findViewById(R.id.mynavigation);
    drawerLayout = findViewById(R.id.mydrawer);
    actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.open, R.string.close);
    drawerLayout.addDrawerListener(actionBarDrawerToggle);
    actionBarDrawerToggle.syncState();
    bottomNavigationView = findViewById(R.id.my_bottom_menu);
    badgeDrawable = bottomNavigationView.getOrCreateBadge(R.id.cart);

    badgeDrawable.setNumber(cartitems);


    bottomNavigationView.setSelectedItemId(R.id.home);


    fragmentManager.beginTransaction().replace(R.id.mycontainer, new home()).commit();
    bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId()) {
                case R.id.home:

                    fragmentManager.beginTransaction().replace(R.id.mycontainer, new home()).addToBackStack(null).commit();
                    break;
                case R.id.order:

                    fragmentManager.beginTransaction().replace(R.id.mycontainer, new order()).addToBackStack(null).commit();
                    break;
                case R.id.cart:
                    fragmentManager.beginTransaction().replace(R.id.mycontainer, new Cart()).addToBackStack(null).commit();

                    break;

            }
            return true;
        }
    });

}


共 (0) 个答案