更新时间:2023-12-06 14:31:11
创建您的菜单xml如下
< 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
更多项
< / item>
< / menu>
然后
@Override
public boolean onOptionsItemSelected(MenuItem item){
int id = item.getItemId();
switch(id){
case R.id.action_dropdown1:
...
return true;
case R.id.action_dropdown2:
...
return true;
...
默认值:
返回super.onOptionsItemSelected(item);
}
}
I want to show DropDown menu on MenuItem click just like this.
Like this
Note that this item was added like:
<item
android:id="@+id/menu_item_action_parameters"
android:title="@string/text_parameters"
android:icon="@drawable/ic_menu_parameter"
app:showAsAction="ifRoom|withText"/>
</item>
And in my code:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case R.id.menu_item_action_parameters:
// What to do here?
break;
}
return super.onOptionsItemSelected(item);
}
I have seen this link but I have came to know that ActionBar.setListNavigationCallbacks()
has been deprecated.
Thanks!
Create your menu xml as follow
<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>
Then
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case R.id.action_dropdown1:
...
return true;
case R.id.action_dropdown2:
...
return true;
...
default:
return super.onOptionsItemSelected(item);
}
}