Menu菜单用法!

来源:互联网 发布:java 代码加密 编辑:程序博客网 时间:2024/06/08 02:24
 
public class Ex01 extends Activity {public static final int ADD_ID = Menu.FIRST;public static final int DELETE_ID = Menu.FIRST + 1;public static final int EXIT_ID = Menu.FIRST + 2;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }@Overridepublic boolean onCreateOptionsMenu(Menu menu) {super.onCreateOptionsMenu(menu);menu.add(0, ADD_ID, 0, R.string.menu_add);menu.add(0, DELETE_ID, 1, R.string.menu_delete);menu.add(0, EXIT_ID, 2, R.string.menu_exit);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case ADD_ID: setTitle("Insert..."); break;case DELETE_ID: setTitle("Delete..."); break;case EXIT_ID: finish(); break;}return super.onOptionsItemSelected(item);}}


strings.xml

<?xml version="1.0" encoding="utf-8"?><resources><string name="hello">Hello World, Ex01!</string><string name="app_name">Ex01</string><string name="menu_add">Add Item</string><string name="menu_delete">Del Item</string><string name="menu_exit">Exit</string></resources>

说明:

1. 一开始,框架就反向呼叫onCreate()函數,也呼叫onCreateOptionsMenu()。
2. 当你选取<Add Item>选项时,框架会反向呼叫onOptionsItemSelected()函數。
3. 框架是主角,Ex01 类别只是被呼叫的配角,复杂的控制邏辑都为框架所
做掉了,所以程序代码便得简单清晰了。
4. 呼叫onCreate()函數时,此函數首先正向呼叫父类别Activity 的onCreate()函
數,先执行父类别的预设行为,然后才执行ex01::onCreate()函數的附加行
为。继续执行到setContentView(R.layout.main)指令时,就去讀取main.xml
的内容,依据它來进行屏幕画面的布局(Layout),并显示出來。
5. 呼叫onCreateOptionsMenu() 函數时, 执行到指令: menu.add(0,
ADD_ID, R.string.menu_add)就去取/res/values/strings.xml 中的内容,
取得字串“Add Item”,显示于画面的选单上。