Reputation: 56
I have two buttons in my actionbar namely: logout and edit profile. When I clicked edit profile, I want to show drop down menu but I don't know how. Please help. Thanks in advance!
public boolean onOptionsItemSelected(MenuItem item)
{
switch(item.getItemId())
{
case R.id.action_logout:
AlertDialog.Builder builder=new AlertDialog.Builder(AdminHome.this);
builder.setMessage("Are you sure you want to logout?")
.setPositiveButton("Logout", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
new Logs().execute();
finish();
Intent in=new Intent(AdminHome.this, MainActivity.class);
startActivity(in);
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
}
})
.show();
return true;
case R.id.edituser:
//WHAT TO PUT IN HERE
return true;
}
return super.onOptionsItemSelected(item);
}
Upvotes: 0
Views: 3208
Reputation: 2737
below is sample menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_logout"
android:icon="@drawable/logout"
android:title="Logout"
app:showAsAction="always"
android:orderInCategory="1" />
<item
android:id="@+id/action_edtprofile"
android:icon="@drawable/edtProfile"
android:title="Edit Profile"
app:showAsAction="always"
android:orderInCategory="0">
<menu>
<group>
<item
android:id="@+id/action_dropdown_item1"
android:title="dropdown_item1" />
<item
android:id="@+id/action_dropdown_item2"
android:title="dropdown_item2" />
<item
android:id="@+id/action_dropdown_item3"
android:title="dropdown_item3" />
</group>
</menu>
</item>
onClick of Edit Profile a dropdon will appear with Sub-Menus and using the id u can perform the action.
Upvotes: 0
Reputation: 11565
Do it in this way , your menu xml should be like this the items you want to show on Actionbar or toolbar should be placed in parent menu tag and child menu items (which will be shown in drop down menu when when edituser is tapped) should be placed in another menu tag:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/action_logout"
android:icon="@drawable/action_logout"
android:title="@string/action_logout"
android:showAsAction="always" >
<item android:id="@+id/edituser"
android:icon="@drawable/edituser"
android:title="@string/edituser"
android:showAsAction="always" >
<menu>
<item android:id="@+id/item1"
android:icon="@drawable/ic_launcher"
android:title="@string/item1"
android:showAsAction="never"
/>
<item android:id="@+id/item2"
android:icon="@drawable/ic_launcher"
android:title="@string/item2"
android:showAsAction="never" />
<item android:id="@+id/item3"
android:icon="@drawable/ic_launcher"
android:title="@string/item3"
android:showAsAction="never"/>
<item android:id="@+id/item4"
android:icon="@drawable/ic_launcher"
android:title="@string/item4"
android:showAsAction="never" />
</menu>
</item>
</menu>
I hope i am clear in my answer. Hope it will help you.
Upvotes: 0
Reputation: 1477
Simply create your Menu Item and apply click on it
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_item_action_parameters"
android:title="@string/text_parameters"
android:icon="@drawable/ic_menu_parameter"
app:showAsAction="ifRoom|withText"/> >
<menu>
<item
android:id="@+id/action_dropdown1"
android:title="@string/dropdown_1" />
<item
android:id="@+id/action_dropdown2"
android:title="@string/dropdown2" />
<item
android:id="@+id/action_dropdown3"
android:title="@string/dropdown3" />
</menu>
</item>
<item
more item
</item>
</menu>
For nore deatil refer this link Android Show DropDown Menu on MenuItem click
public void showPopup(int itemId){
View view = findViewById(itemId);
PopupMenu popupMenu = new PopupMenu(getSupportActionBar().getThemedContext(), view);
popupMenu.setOnMenuItemClickListener(/* drop_down item click listener */);
popupMenu.getMenuInflater().inflate(R.menu.drop_down_menu, popupMenu.getMenu());
popupMenu.show();
}
Upvotes: 1