菜鸟学习Android之菜单(一)

注:本文只是一个学习笔记 用以记录自己学到哪了

在学习选项菜单之前我有遇到一个问题 eclipse报警告:Activity not started, its current task has been brought to the front 大概的意思是你的activity不能创建,eclipse当前已经有一个任务在运行 解决办法:project->clean

下面开始本次学习笔记

option菜单用到的几个函数 都是需要覆盖的

public boolean onCreateOptionsMenu(Menu menu): 使用此方法调用OptionsMenu

public boolean onOptionsItemSelected(MenuItem item): 选中菜单项后发生的动作

   public void onOptionsMenuClosed(Menu menu): 菜单关闭后发生的动作

   public boolean onPrepareOptionsMenu(Menu menu): 选项菜单显示之前onPrepareOptionsMenu方法会被调用

   public boolean onMenuOpened(int featureId, Menu menu): 单击打开后发生的动作

本次activity 为菜单项添加ID

public class MainActivity extends Activity { //定义标识菜单项的ID常量 Menu.FIRST = 1 private static final int ITEM1 =Menu.FIRST; private static final int ITEM2 = ITEM1 + 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }添加菜单

public boolean onCreateOptionsMenu(Menu menu) { menu.add(0,ITEM1,0,"开始游戏").setIcon(R.drawable.start); menu.add(1,ITEM2,1,"退出游戏").setIcon(R.drawable.exit); return true; // 这里要返回true 否则菜单不显示 }处理菜单项的单击事件

public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case ITEM1: { Toast.makeText(this, "开始游戏", Toast.LENGTH_LONG).show(); // 不要忘记要加show() break; } case ITEM2: { Toast.makeText(this, "退出游戏", Toast.LENGTH_LONG).show(); break; } } return super.onOptionsItemSelected(item); } 运行效果:

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

上下文菜单用法与选项菜单差不多,也是需要覆盖几个方法

onCreateContextMenu(...)可以在这个方法里添加菜单项

onContextItemSelected(...) 响应菜单单击事件

registerForContextMenu(..)为视图注册上下文菜单

11




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值