'Android hamburger not turning into array

Like in title my hamburger in ActionBar does not turning into array and vice versa.

Here is my code:

ActivityMain.java

public class ActivityMain extends BaseActivity {

    private final FragmentMainHome fragmentMainHome = new FragmentMainHome();

    private BottomNavigationView bottomNavView;
    private int startingPosition, newPosition;
    public ActivityMainBinding binding;

    @Override
    public Activity getChildActivity() {
        return this;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        binding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        initBottomNavView();

        getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, fragmentMainHome).commit();
    }

    @Override
    public boolean onCreateOptionsMenu(final Menu menu) {
        getMenuInflater().inflate(R.menu.menu_action_bar, menu);
        final MenuItem searchItem = menu.findItem(R.id.action_search);
        SearchView searchView = (SearchView) searchItem.getActionView();
        searchView.setQueryHint(getString(R.string.find_word));
        searchView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
            @Override
            public void onViewAttachedToWindow(View arg0) {
                setItemsVisibility(menu, searchItem, false);
            }

            @Override
            public void onViewDetachedFromWindow(View arg0) {
                setItemsVisibility(menu, searchItem, true);
            }
        });
        return super.onCreateOptionsMenu(menu);
    }
(...)
}

BaseActivity.java

public abstract class BaseActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

    public ActionBarDrawerToggle actionBarDrawerToggle;
    private DrawerLayout drawerLayout;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        initFields();
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        int id = item.getItemId();
        if(id == R.id.nav_login) {

            drawerLayout.closeDrawers();
            startActivity(new Intent(this, ActivityCredentials.class));
        }
        return false;
    }

    public abstract Activity getChildActivity();

    private void initFields() {
        if (getChildActivity() instanceof ActivityMain) {
            ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());
            binding.navigationView.setNavigationItemSelectedListener(this);
            drawerLayout = binding.myDrawerLayout;
        }
        if (getChildActivity() instanceof ActivityCredentials) {
            ActivityCredentialsBinding binding = ActivityCredentialsBinding.inflate(getLayoutInflater());
            binding.navigationView.setNavigationItemSelectedListener(this);
            drawerLayout = binding.myDrawerLayout;
        }

        actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.find_word, R.string.add);
        drawerLayout.addDrawerListener(actionBarDrawerToggle);
        actionBarDrawerToggle.syncState();


        Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
    }
}

So what is the reason my hamburger not chanmging into array ?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source