开发选项菜单的菜单的基本步骤
通过java实现
1、重写Activity的onCreateOptionsMenu(Menu menu)方法
@Override public boolean onCreateOptionsMenu(Menu menu) { //向Menu中添加字体大小的子菜单 SubMenu fontMenu=menu.addSubMenu("字体大小"); //设置菜单的图标 fontMenu.setIcon(R.drawable.ic_launcher); //设置菜单头的图标 fontMenu.setHeaderIcon(R.drawable.ic_launcher); //设置菜单头的标题 fontMenu.setHeaderTitle("选择字体大小"); fontMenu.add(0,FONT_10,0,"10号字体"); return super.onCreateOptionsMenu(menu); }2、重写Activity的onOptionsItemSelected(MenuItem item)方法相应菜单的单击事件
//菜单项单击后的回调方法 @Override public boolean onOptionsItemSelected(MenuItem item) { //判断是哪个菜单项被单击了,并有针对性的做出响应 switch (item.getItemId()) { case FONT_10: ed1.setTextScaleX(10*2); break; default: break; } return true; }通过XML资源文件来实现
1、在res/menu文件下创建XML资源文件
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/red" android:title="@string/read"/> <item android:id="@+id/green" android:title="@string/green"/> <item android:id="@+id/blue" android:title="@string/bule"/> </menu>2、重写Activity的onCreateOptionsMenu(Menu menu)方法并将指定的XML资源文件绑定到Menu对象中
@Override public boolean onCreateOptionsMenu(Menu menu) { //将R.menu.main对应的菜单项,添加到menu中 MenuInflater flater=new MenuInflater(this); flater.inflate(R.menu.main, menu); return true; }
开发上下文菜单的基本步骤:
1、冲写nCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo)方法
//重写上下文菜单 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // TODO Auto-generated method stub menu.add(0,MUNE1,0,"红色"); menu.add(0,MUNE2,0,"绿色"); menu.add(0,MUNE3,0,"蓝色"); //将三个菜单设置为单选项 menu.setGroupCheckable(0, true, true); menu.setHeaderIcon(R.drawable.ic_launcher); menu.setHeaderTitle("上下文菜单"); }2、调用Activity的registerForContextMenu(View v)方法为v控件注册上下文菜单
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txt1=(TextView)findViewById(R.id.txt1); //为文本标签注册上下文菜单 registerForContextMenu(txt1); }3、重写public boolean onContextItemSelected(MenuItem item) 方法来相应单击事件
@Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case MUNE1: item.setCheckable(true); txt1.setTextColor(Color.RED); break; case MUNE2: item.setCheckable(true); txt1.setTextColor(Color.GREEN); break; case MUNE3: item.setCheckable(true); txt1.setTextColor(Color.BLUE); break; default: break; } return true; }通过xml资源文件来实现上下文菜单与选项菜单类似
使用PopMenu创建弹出菜单项的基本步骤:
1、创建PopMenu对象
2、将指定的XML资源填充到PopMenu中
3、为PopMenu菜单项绑定监听时间
4、调用PopMenu的show方法显示出来
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt1=(Button)findViewById(R.id.bt1); bt1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { pop=new PopupMenu(MainActivity.this, v); //将资源R.menu.mian添加到pop菜单中 MenuInflater flater=new MenuInflater(MainActivity.this); flater.inflate(R.menu.main, pop.getMenu()); //为pop菜单项绑定监听事件 pop.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case R.id.red: bt1.setTextColor(Color.RED); break; case R.id.green: bt1.setTextColor(Color.GREEN); break; case R.id.blue: bt1.setTextColor(Color.BLUE); break; default: break; } return true; } }); pop.show(); } }); }