Saya tahu bahwa pertanyaan ini banyak ditanyakan, tetapi tidak ada jawaban yang berhasil untuk saya.

Saya memiliki dua aktivitas, MainActivity dan ShopActivity. Di MainActivity saya memiliki menu bilah samping.

Masalah terjadi ketika saya beralih aktivitas, menu menghilang.

Jadi bagaimana saya bisa memperbaiki menu bilah samping di setiap aktivitas? Bukankah ini mungkin?

Metode onCreate Aktivitas Utama:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mDrawerLayout = findViewById(R.id.drawer);
    mNavigationView = findViewById(R.id.navigationView);
    mNavigationView.setNavigationItemSelectedListener(this);
    mToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.open, R.string.close);
    mDrawerLayout.addDrawerListener(mToggle);
    mToggle.syncState();
    CreateExampleList();
    BuildRecyclerView();
    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setDisplayShowTitleEnabled(true);
    }
}

Di sinilah saya beralih aktivitas:

public void BuildRecyclerView() {
    recyclerView = findViewById(R.id.recyclerView);
    recyclerView.setHasFixedSize(true);
    layoutManager = new LinearLayoutManager(this);
    adapter = new ShopAdapter(shops);
    adapter.setOnShopClickListener(new ShopAdapter.OnShopClickListener() {
        @Override
        public void onItemClick(int position) {
            ShopItem selectedShop = shops.get(position);
            Intent k = new Intent(MainActivity.this, ShopActivity.class);
            startActivity(k);
            Toast.makeText(MainActivity.this, "Selected Shop: " + selectedShop.getShopName(), Toast.LENGTH_SHORT).show();
        }
    });
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setAdapter(adapter);
}

Aktivitas Kedua:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_shop);
    mDrawer = findViewById(R.id.drawer);
    mToggle = new ActionBarDrawerToggle(this, mDrawer, R.string.open, R.string.close);
    mDrawer.addDrawerListener(mToggle);
    LayoutInflater inflater = (LayoutInflater) this
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View contentView = inflater.inflate(R.layout.activity_shop, null, false);
    mDrawer.addView(contentView, 0);
}

Ada yang tahu apa masalahnya??

1
Mohamad Mousheimish 2 Juli 2020, 21:43

1 menjawab

Jawaban Terbaik

Solusinya hanyalah menginisialisasi bilah menu dengan cara yang sama seperti yang kita lakukan di MainActivity satu sama lain Activity.

Jadi cukup tulis kode MainActivity di Aktivitas Kedua.

Metode onCreate Aktivitas Kedua:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mDrawerLayout = findViewById(R.id.drawer);
    mNavigationView = findViewById(R.id.navigationView);
    mNavigationView.setNavigationItemSelectedListener(this);
    mToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.open, R.string.close);
    mDrawerLayout.addDrawerListener(mToggle);
    mToggle.syncState();
    CreateExampleList();
    BuildRecyclerView();
    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setDisplayShowTitleEnabled(true);
    }
}
1
Mohamad Mousheimish 14 Juli 2020, 06:43