菜单

  Android系统的菜单支持主要通过4个接口来实现

  • Menu接口只是一个父接口,该接口下有两个子接口。
  • SubMenu:它代表一个普通菜单。
  • ContextMenu:它代表一个子菜单。

Menu接口定义了如下方法来添加菜单或菜单项。

  • MenuItem add(int titleRes):添加一个新的菜单项。
  • MenuItem add(int groupld,int itemId,int order,CharSequence title):添加一个新的处于groupId组的菜单项。
  • MenuItem add(CharSequence title)添加一个新的菜单项。
  • SubMenu addSubMenu(int titleRes)
  • SubMenu addSubMenu(int groupId,int itemId,int order,int titleRes):添加一个新的处于groupId组的子菜单。
  • SubMenu addSubMenu(CharSequence title):添加一个新的子菜单。
  • SubMenu addSubMenu(int groupId,int itemId,int order,CharSequencr title):添加一个新的处于groupI的组的子菜单。

添加菜单或子菜单的步骤如下:

1.重写Activity的onCreatOptionsMenu(Menu mens)的方法,在该方法里调用Menu对象的方法来添加菜单项或子菜单。

2.如果希望应用程序能响应菜单项的单击事件,重写Activity的onOptionsItemSelected方法即可。

示例:

 

public class MainActivity extends Activity {
    final int GREEN=1;
    final int RED=2;
    final int BLUE=3;
    private TextView text;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        text=(TextView)findViewById(R.id.text);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        SubMenu colorMenu=menu.addSubMenu("字体颜色");
        colorMenu.setIcon(R.drawable.ic_action_search);
        colorMenu.setHeaderIcon(R.drawable.ic_action_search);
        colorMenu.setHeaderTitle("设置字体颜色");
        colorMenu.add(0,GREEN,0,"绿色");
        colorMenu.add(0,RED,0,"红色");
        colorMenu.add(0,BLUE,0,"蓝色");
        return super.onCreateOptionsMenu(menu);
    }
    public boolean onOptionsItemSelected(MenuItem mi){
        switch(mi.getItemId()){
        case GREEN:text.setTextColor(Color.GREEN);break;
        case RED:text.setTextColor(Color.RED);break;
        case BLUE:text.setTextColor(Color.BLUE);break;
        }
        return true;
        
    }
    
}
posted @ 2012-09-14 14:39  Carve_Time  阅读(217)  评论(0编辑  收藏  举报