CRE*_*REW 5 android drawable android-fragments android-actionbar
我正在尝试在操作栏的顶部添加"添加项目"按钮.(在应用程序图标和标题的右侧).
在操作栏下方,我有两个可以在其间滑动的标签.我还为设置菜单定义了一个菜单XML文件.
我认为actionbar也使用菜单XML.所以我添加了一个操作栏菜单XML,但是当我使用时
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM);
actionbar.setCustomView(R.menu.actionbar);
Run Code Online (Sandbox Code Playgroud)
我的程序崩溃了.我相信我做错了.
我的操作栏XML:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/item1" android:icon="@android:drawable/ic_menu_add"></item>
</menu>
Run Code Online (Sandbox Code Playgroud)
我读了一些教程,我应该将项添加到操作栏并通过mainActivity中的OnCreateOptionsMenu函数填充它.但那是我的选项菜单填充的地方,而不是我的操作栏.
活动在其onCreateOptionsMenu()方法中填充ActionBar.
而不是使用setcustomview(),只需像这样覆盖onCreateOptionsMenu
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mainmenu, menu);
return true;
}
Run Code Online (Sandbox Code Playgroud)
如果选择ActionBar中的操作,则调用onOptionsItemSelected()方法.它接收所选操作作为参数.根据这些信息,您的代码可以决定做什么,例如:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menuitem1:
Toast.makeText(this,"Menu Item 1 selected",Toast.LENGTH_SHORT).show();
break;
case R.id.menuitem2:
Toast.makeText(this,"Menu item 2 selected",Toast.LENGTH_SHORT).show();
break;
default:
break;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8158 次 |
| 最近记录: |