Android没有提供一种设置应用程序图标在操作栏右侧的方法,但你仍然可以这样做。创建一个菜单,比如main_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/menu_item"
android:icon="@drawable/your_app_icon"
android:title="@string/menu_item"
app:showAsAction="always"/> //set showAsAction always
//and this should be the only menu item with show as action always
</menu>
现在只需在您的活动类中覆盖onCreateOptionsMenu
。
将此添加到MainActivity.java
中。
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.main_menu, menu);
return super.onCreateOptionsMenu(menu);
}
完成了!你的应用程序图标现在将在操作栏右侧可见。
如果您的菜单中有多个项目,则在活动类中覆盖 onPrepareOptionsMenu
并设置setEnabled(false)
,以防止应用程序图标可被点击。
@Override
public boolean onPrepareOptionsMenu(Menu menu){
menu.findItem(R.id.menu_item).setEnabled(false);
return super.onPrepareOptionsMenu(menu);
}
现在你的MainActivity.java
文件看起来会像这样:
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.main_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
case R.id.menu_item:
return true;
case R.id.menu_item2:
return true;
case ...
default: return super.onOptionsItemSelected(item);
}
}
@Override
public boolean onPrepareOptionsMenu(Menu menu){
menu.findItem(R.id.menu_item).setEnabled(false);
return super.onPrepareOptionsMenu(menu);
}
这是您可以使用的唯一技巧,以在右侧设置应用图标。