1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

创建ActionBar -Android

Posted at

官方文档 --> xml 创建

[链接] (file:///Users/Yun/Library/Application%20Support/Dash/DocSets/Android/Android.docset/Contents/Resources/Documents/docs/guide/topics/ui/actionbar.html#Adding)

  • 创建xml
    xml:

      <menu xmlns:android="http://schemas.android.com/apk/res/android" 
      >
      <item android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:title="@string/action_search"
        yourapp:showAsAction="ifRoom" />
      <item android:id="@+id/action_compose"
        android:icon="@drawable/ic_action_compose"
        android:title="@string/action_compose" />
      </menu>
    
  • 加载xml布局

    java:

      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu items for use in the action bar
      MenuInflater inflater = getMenuInflater();
      inflater.inflate(R.menu.main_activity_actions, menu);
      return super.onCreateOptionsMenu(menu);
      }
    
  • 监听事件

    java:

     @Override
    

    public boolean onOptionsItemSelected(MenuItem item) {
    // Handle presses on the action bar items
    switch (item.getItemId()) {
    case R.id.action_search:
    openSearch();
    return true;
    case R.id.action_compose:
    composeMessage();
    return true;
    default:
    return super.onOptionsItemSelected(item);
    }
    }

不使用布局文件创建

  • 添加按钮

    java:

    private void addMenuButton(Menu menu) {
     MenuItem item = menu.add(0, 0, 0, "编辑");
    
     {
     	item.setIcon(R.drawable.ic_setting);
     	item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
     }
     item.setOnMenuItemClickListener(this);
    

    }

  • 加载布局

java:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
	addMenuButton(menu);
	super.onCreateOptionsMenu(menu, inflater);
}
  • 监听事件

    实现OnMenuItemClickListener接口
    java:

      @Override
      public boolean onMenuItemClick(MenuItem item) {
          switch (item.getItemId()) {
          case 0:
      	    T.showShort(mainActivity, "Demo");
      	    break;
    
          default:
         	    break;
          }
          return false;
      }
    

Fragment中需要在onCreate状态下 设置 setHasOptionsMenu(true);

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?