Can I detect click/tap on the menu button of action bar, i.e. used to show overflow menu items?
By default it opens up the list with one item "Settings". Here is the screenshot:
Until now it is detecting click on "2" but I want to detect click on "1".
To detect the click on the overflow menu have such code:
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
if(featureId == AppCompatDelegate.FEATURE_SUPPORT_ACTION_BAR && menu != null){
//overflow menu clicked, put code here...
}
return super.onMenuOpened(featureId, menu);
}
@Override
public void onPanelClosed(int featureId, Menu menu) {
...
}
To detect click on menu items, in case you have a menu like that :
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu2" android:alphabeticShortcut="b"
android:title="Menu No. 2" android:orderInCategory="2">
<menu >
<group android:id="@+id/group2" android:checkableBehavior="single">
<item android:id="@+id/submenu1" android:title="SubMenu No. 1" />
<item android:id="@+id/submenu2" android:title="SubMenu No. 2" />
</group>
</menu>
</item>
</menu>
You should be able to detect the click in
onOptionsItemSelected
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Log.w("ANDROID MENU TUTORIAL:", "onOptionsItemSelected(MenuItem item)");
// Handle item selection
switch (item.getItemId()) {
case R.id.menu2:
Toast.makeText(this, "Clicked: Menu No. 2", Toast.LENGTH_SHORT).show();
return true;
...
}
Finally i found the solution. Override FragmentActivity.onKeyDown
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
switch (keyCode) {
case KeyEvent.KEYCODE_MENU:
// Do Sometihng
break;
default:
break;
}
return super.onKeyDown(keyCode, event);
}
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