Android学习笔记之MENU
今天学习如何在Android里进行MENU操作,比较了一下微软和android对菜单操作的区别,总的来说,还是微软那一套比较方便(*^__^*) 嘻嘻……
好,转入正题。在android要建立自己的菜单,要重载一下父类的onCreateOptionsMenu方法。然后在onCreateOptionsMenu里进行添加菜单的操作。代码如下:
@Override
public 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_Del);
menu.add(0, UPDATE_ID, 2, R.string.Menu_Update);
menu.add(0, EXIT_ID, 3, R.string.Menu_Exit);
return true;
}
其中ADD_ID、DELETE_ID、UPDATE_ID、EXIT_ID是每个菜单项的Id,定义如下:
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;
public static final int UPDATE_ID = Menu.FIRST + 3;
然后在资源文件里添加要显示在菜单上的文本,打开string.xml添加如下代码:
<string name="Menu_Add">Add Item</string>
<string name="Menu_Del">Delete Item</string>
<string name="Menu_Update">Update Item</string>
<string name="Menu_Exit">Exit</string>
一个简单的菜单就做好了,简单吧。建立好菜单后,下一步就是为菜单添加相应事件了。这个也是重载父类的onOptionsItemSelected方法,代码如下:
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
case ADD_ID: setTitle("Insert...");break;
case DELETE_ID: setTitle("Delete...");break;
case EXIT_ID: setTitle("Exit...");break;
case UPDATE_ID: setTitle("Update...");break;
default:break;
}
return true;
}
这样一个基本的菜单就实现了,(*^__^*) 嘻嘻……,简单吧。下回继续。(附本例所有代码)
ex01.java:
package oms.ex01;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class ex01 extends Activity {
/** Called when the activity is first created. */
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;
public static final int UPDATE_ID = Menu.FIRST + 3;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public 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_Del);
menu.add(0, UPDATE_ID, 2, R.string.Menu_Update);
menu.add(0, EXIT_ID, 3, R.string.Menu_Exit);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
case ADD_ID: setTitle("Insert...");break;
case DELETE_ID: setTitle("Delete...");break;
case EXIT_ID: setTitle("Exit...");break;
case UPDATE_ID: setTitle("Update...");break;
default:break;
}
return true;
}
}
string.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_Del">Delete Item</string>
<string name="Menu_Update">Update Item</string>
<string name="Menu_Exit">Exit</string>
</resources>