Android里的菜单

android菜单主要有三种,选项菜单(options Menu),上下文菜单(Content Menu),子菜单(Submenu)
options menu
当第一次调用选项菜单时,activity会调用onCreateOptionsMenu回调方法。
    final int MENU_SAVE = Menu.FIRST;
    final int MENU_DELETE = Menu.FIRST+1;
//android.view.Menu 变量
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(0, MENU_SAVE, 0, "保存")
            .setIcon(android.R.drawable.ic_menu_save);
        menu.add(0, MENU_DELETE, 0, "删除")
            .setIcon(android.R.drawable.ic_menu_delete);
        return true;
    }
通过add函数返回的MenuItem可以设置menu的属性  如图标等。
通过@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        super.onOptionsItemSelected(item);
        switch (item.getItemId()) {
        case MENU_SAVE:
            //做保存的那些事。
            break;
        case MENU_DELETE:
            //做删除的那些事。
            break;
        }
           
    return false;
    }完成响应时间
通过 @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        super.onPrepareOptionsMenu(menu);
        //通过id找到MenuItem
        MenuItem item = menu.findItem(MENU_SAVE);
       
        //根据需要更改item,使能等
           
        return true;
    }动态更改选项菜单

content menu 使用方法同上  长按view对象即可显示此菜单
首先需要在oncreate函数中注册上下文菜单的view对象
源码如下:
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       
        TextView tv = new TextView(this);
        tv.setText("上下文菜单的载体");
        this.registerForContextMenu(tv);
        this.setContentView(tv);
    }
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.add(0, C_MENU_NEW, 0, "新建");
        menu.add(0, C_MENU_OPEN, 0, "打开");
    } 
    @Override
    public boolean onContextItemSelected(MenuItem item) {
      super.onContextItemSelected(item);
     
      switch (item.getItemId()) {
      case C_MENU_NEW:
          //做新建的那些事。
          break;
      case C_MENU_OPEN:
          //做打开的那些事。
          break;
      }
      return false;
    }
sub menu 子菜单
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
      super.onCreateOptionsMenu(menu);
     
      SubMenu sub = menu.addSubMenu("yyyy");
      sub.setIcon(android.R.drawable.ic_menu_search);
     
      sub.add(0,MENU_LOCAL,0,"本地");
      sub.add(0,MENU_INTERNET,0,"网络");
      return true;
    }
响应时间同option menu

你可能感兴趣的:(C++,c,android,C#)