Menu菜单设计技巧

 

代码如下:

 

public class MenuActivity extends Activity {
	private static final int ADD_ID = Menu.FIRST;
	private static final int DELETE_ID = Menu.FIRST + 1;
	private static final int EXIT_ID = Menu.FIRST + 2;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    
    //创建菜单选项
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		menu.add(0, ADD_ID, 0, "增加菜单");
		menu.add(0, DELETE_ID, 1, "删除菜单");
		menu.add(0, EXIT_ID, 2, "退出");
		return true;
	}
    //菜单选项被点击后进行的操作
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch(item.getItemId()){
			case ADD_ID:
				setTitle("插入");
				break;
			case DELETE_ID:
				setTitle("删除");
				break;
			case EXIT_ID:
				finish();
				break;
		}
		return super.onOptionsItemSelected(item);
	}
}


研究上面的代码:一开始,框架就反向呼叫onCreate()函数,也呼叫onCreateOptionsMenu.当你选取” 增加菜单”的时候,框架会反向呼叫onOptionsItemSelected()函数。框架是主角,MenuActivity类知识被呼叫的配角,复杂的控制逻辑都被框架隐藏了,所以程序代码变的简单清晰了。

    呼叫onCreate()函数时,此函数首先 正向呼叫父类Activity的onCreate()函数,先执行父类的预设行为,然后才执行MenuActivity::onCrate()函数的附加行为。

1、  为何子类MenuActivity的onCrate()要正向呼叫父类的onCrate()函数?

因为框架的某个函数(不是Activity::onCreate())呼叫MenuActivity::onCrate()函数时,此onCrate()函数无法自己完成整个任务,而需要父类的预设函数来帮忙,才得以完成之。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值