如何在 ActionBar(Android)中添加按钮?

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

![没有按钮的操作栏截图。标题是 '示例'][1]

我在 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;
}

如何添加按钮?

解决办法

您必须在 res/menu 中创建一个条目,覆盖 onCreateOptionsMenu 并使其膨胀

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

菜单条目可以是



评论(8)

活动会在其 "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;
}
评论(0)

感谢 @Blackbelt!菜单充气的新方法签名是这样的:

@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.my_meny, menu);
}
评论(0)