I'm trying to access the default ToolBar from within and Activity's onCreateOptionsMenu function to change the Overflow menu icon (three dots icon). I want to use the setOverflowIcon method provided by this class.
I have read the official documentation, posts on StackOverflow and other websites and everything fails.
I tried for example Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); but I get an error that says that R.id.toolbar doesn't exist.
If you're using AppcompatActivity
, you should use SupportActionBar
like this:
supportActionBar?.title = "My Activity title"
this piece of code: Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
only works when you've added a Toolbar
with toolbar
id in xml
. even if you did it, you should setSupportActionBar(yourToolBar)
before doing anything. Then use supportActionBar
directly instead.
Performing Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar) isn't expected to work because the ID does not explicitly exist. Every activity-Java class extends Activity (or its direct or indirect subclasses), you can use this to get the action bar (so to speak).
If your java file extends AppCompatActivity, you can use getSupportActionBar()
to summon the ActionBar.
Java files that extend Activity require getActionBar()
to summon the toolbar.
You can thereafter perform operations like changing the displayed text/title, background drawable, amongst other tasks.
To learn more about getting the action bar, check out this link.
A little late to the party but default toolbar can be referenced by an id like androidx.appcompat.R.id.action_bar
findViewById(androidx.appcompat.R.id.action_bar)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With