2

The following causes a post-install crash in emulator. No debug info shown.

package com.example.myapplication;

import android.os.Bundle;

import com.google.android.material.bottomappbar.BottomAppBar;
import com.google.android.material.tabs.TabLayout;

import androidx.appcompat.widget.Toolbar;
import androidx.viewpager.widget.ViewPager;
import androidx.appcompat.app.AppCompatActivity;

import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ListView;

import com.example.myapplication.ui.main.SectionsPagerAdapter;
public class MainActivity extends AppCompatActivity {

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.top_bar, menu);
        return true;
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar top_toolbar = findViewById(R.id.top_toolbar);
        setSupportActionBar(top_toolbar);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
        BottomAppBar bottom_toolbar = findViewById(R.id.bottom_toolbar);
        bottom_toolbar.replaceMenu(R.menu.bottom_bar);
        SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(this, getSupportFragmentManager());
        ViewPager viewPager = findViewById(R.id.view_pager);
        viewPager.setAdapter(sectionsPagerAdapter);
        TabLayout tabs = findViewById(R.id.tabs);
        tabs.setupWithViewPager(viewPager);
        ImageButton my_posts_button = findViewById(R.id.my_posts_button);
        ImageButton chats_button = findViewById(R.id.chats_button);
        ImageButton post_button = findViewById(R.id.post_button);
        ImageButton settings_button = findViewById(R.id.settings_button);
        ImageButton profile_button = findViewById(R.id.profile_button);
        ImageButton sort_button = findViewById(R.id.search_button);
        ImageButton search_button = findViewById(R.id.sort_button);
    }
}

It looks like the website thinks my post is mostly code.It looks like the website thinks my post is mostly code.It looks like the website thinks my post is mostly code.

noe.ramelo
  • 23
  • 3
  • 2 different actionbars? Can you explain what are you trying to achieve? – Gabriele Mariotti Jun 23 '20 at 20:59
  • I have a top bar for settings etc.. and a bottom bar for profile, chats etc (all icons). I am very new to android studio so i might be wrong with the choice of method of course and i know python (self taught) and am trying to learn to make apps in java. – noe.ramelo Jun 23 '20 at 22:35

1 Answers1

1

You are using both a Toolbar and a BottomBar. You can use the onCreateOptionsMenu only for the bar used in the setSupportActionBar.

For example:

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

and onCreateOptionsMenu for the Toolbar menu:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.toolbar_menu, menu);
    return true;
}

Then for the BottomBar you can use the app:menu in the layout or the replaceMenu method:

    BottomAppBar bottomAppBar = findViewById(R.id.bottomappbar);
    bottomAppBar.replaceMenu(R.menu.bottom_bar);
    bottomAppBar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            if (item == R.id...){
                //....
                return true;
            }
            return false;
        }
    });
Gabriele Mariotti
  • 320,139
  • 94
  • 887
  • 841