34

我想在示例右侧的操作栏中添加一个按钮,如下面的屏幕截图所示:

没有按钮的操作栏的屏幕截图。 标题是“示例”

我在 onCreate 方法中得到 actionBar 为:

ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);

和后退按钮(onOptionsItemSelected 方法)如下:

public boolean onOptionsItemSelected(MenuItem item){
    Intent myIntent = new Intent(getApplicationContext(),MainActivity.class);
    startActivityForResult(myIntent, 0);
    return true;
}

如何添加按钮?

4

2 回答 2

89

您必须在res/menu,override中创建一个条目onCreateOptionsMenu并对其进行充气

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.yourentry, menu);
    return true;
}

菜单的条目可以是:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/action_cart"
        android:icon="@drawable/cart"
        android:orderInCategory="100"
        android:showAsAction="always"/> 
</menu>
于 2013-07-02T12:35:43.927 回答
22

onCreateOptionsMenu()活动在其方法中填充 ActionBar 。

而不是使用setcustomview(),只需像这样覆盖onCreateOptionsMenu

@Override    
public boolean onCreateOptionsMenu(Menu menu) {
  MenuInflater inflater = getMenuInflater();
  inflater.inflate(R.menu.mainmenu, menu);
  return true;
}

如果选择了 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;
  }
  return true;
}
于 2013-07-02T12:40:38.243 回答