n00b programmer
n00b programmer

Reputation: 2701

create a right side menu in Android actionbar

I have an action bar with a drawer on the left. I want to add another menu on the right side of the action bar. It can be three dots or a button or anything else. Is there any way to do this?
Thanks :)

Upvotes: 0

Views: 2667

Answers (2)

Rajeev
Rajeev

Reputation: 1404

For achieving 3 dots menu in your actionBar, in your activity (which extends AppCompatActivity or ActionBarActivity), you override the creation of options menu like below

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.your_menu, menu);
    return true;
}

Where this R.menu.your_menuis a resource item present in your res/menu folder. One sample menu resource file content

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      tools:context="your_package.your_activity">

    <item
        android:id="@+id/action_edit"
        android:orderInCategory="100"
        android:title="@string/action_edit"
        app:showAsAction="collapseActionView"/>

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="101"
        android:title="@string/action_settings"
        app:showAsAction="collapseActionView"/>

</menu>

This will show a menu with both the options collapsed by default. To listen for clicks on these menu items, you override onOptionsItemSelected and perform the necessary action

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_settings:
            //Do something
            ...
            return true;
        case R.id.action_edit:
            //Do something else
            ...
            return true;
    }

    return super.onOptionsItemSelected(item);
}

Upvotes: 2

SuperFrog
SuperFrog

Reputation: 7674

You can create a layout for your ActionBar and then use something like the following in your activity:

   getSupportActionBar().setDisplayShowCustomEnabled(true);
   getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
   getSupportActionBar().setCustomView(R.layout.custom_action_bar);

And in your R.layout.custom_action_bar create the buttons you need.

Upvotes: 0

Related Questions