您的位置:首页 > 其它

Menu菜单设计技巧

2011-08-19 15:58 190 查看
 
代码如下:

 

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()函数无法自己完成整个任务,而需要父类的预设函数来帮忙,才得以完成之。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  menu delete 框架 class 任务