增加这些条目到菜单中,你要使用 menu.add()方法。这个呼叫的语句是:
参数组被用来与菜单条目相关联。在本例中,你将不使用组。但是,这个值是非
常重要的。参数 id 被用来检测哪一个菜单条目被选择。最后,参数标题是显示
在菜单上的文本。
package android_programmers_guide.AndroidViews;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
public class AndroidViews extends Activity {
/** Called when the Activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, 0, "AutoComplete");
menu.add(0, 1, "Button");
menu.add(0, 2, "CheckBox");
menu.add(0, 3, "EditText");
menu.add(0, 4, "RadioGroup");
menu.add(0, 5, "Spinner");
return true;
}
}81
次,像 onCreateOptionsMenu(),当菜单项被选择,onOptionsItemSelected( )
是你需要优先一个拥有代码,被执行的布尔方法。优先代码应当如下:
这个代码有个问题:当任何菜单项被选择,onOptionsItemSelected( ) 是个常
规被呼叫的方法。你需要给定 onOptionsItemSelected( )一条路来识别不同菜
单项之间的差别并执行相应的代码。因此,使用一个 switch/case 声明来帮助
方法从不同的项目中选择。当你创建了菜单项,你定义了一系列的从 0 到 5 的数
字作为菜单项的值。你可以在 case 声明中使用一个呼叫来 getI()来检测哪一
个菜单项被选择:
在这个 case 声明中,对于每一个 id 当前设定的动作是返回 true.这个不会
做 任 何 的 事 情 但 是 会 保 留 一 个 开 放 的 可 以 增 加 代 码 的 区 域 。 你 的
AndroidViews.java 文件现在可以被用来创建被新菜单系统启动的活动了。完整
的 AndroidViews.java 文件代码应当看上去如下:
@Override
public boolean onOptionsItemSelected(Menu.Item
item){
}
switch (item.getId()) {
case 0:
return true;
case 1:
return true;
case 2:
return true;
case 3:
return true;
case 4:
return true;
case 5:
return true;
}
return true;
package android_programmers_guide.AndroidViews;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
public class AndroidViews extends Activity {
/** Called when the Activity is first created. /
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);82
完成了 AndroidViews.java,你可以重点去创建其它的活动了,在下一节中 ,
你将在项目中为每一个 View 创建一个活动并增加代码来启动 case 声明中 view
的活动。
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
/** Add one menu item for each View in our
project */
menu.add(0, 0, "AutoComplete");
menu.add(0, 1, "Button");
menu.add(0, 2, "CheckBox");
menu.add(0, 3, "EditText");
menu.add(0, 4, "RadioGroup");
menu.add(0, 5, "Spinner");
return true;
}
/** Override onOptionsItemSelected to execute
code for each
menu item */
@Override
public boolean onOptionsItemSelected(Menu.Item
item){
}
/** Select statement to handle calls
to specific menu items */
switch (item.getId()) {
case 0:
return true;
case 1:
return true;
case 2:
return true;
case 3:
return true;
case 4:
return true;
case 5:
return true;
}
return true;
}
}