子元素
3)表示一個菜單組,相同的菜單可以一起設置其屬性,例如visable,enable和checkable等。屬性如下:
id:唯一標志該菜單組的引用id。
menuCategory:對菜單進行分類,定義菜單的優先級,有效值為container,system,secondary和alternative。
orderInCategory:一個分類排序整數。
checkableBehavior:選擇行為,單選、多選還是其他,有效值為none,all,single。
visable:是否可見,true或者false。
enabled:是否可用,true或者false。
4)- 表示菜單項,包含在
id:唯一標志該菜單組的引用id。
menuCategory:菜單分類。
orderInCategory:一個分類排序整數。
title:菜單標題字符串。
titleCondensed:濃縮標題,適合標題太長的時候使用。
icon:菜單的圖標。
alphabeticShortcut:字符快捷鍵。
numberShortcut:數字快捷鍵。
checkable:是否可選。
checked:是否已經備選。
visable:是否可見。
enabled:是否可用。
案例一:通過menu.xml創建菜單
1)、menu.xml文件:
test_menu.java文件:
public class Test_Menu extends Activity{
private MenuInflater mi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_menu);
mi = new MenuInflater(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
mi.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.about:
aboutAlert("本實例演示的是如何使用Xml菜單資源來定義菜單!");
break;
case R.id.exit:
exitAlert("真的要退出嗎?");
break;
}
return super.onOptionsItemSelected(item);
}
private void exitAlert(String msg){
//實例化AlertDialog.Builder
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//設置顯示信息
builder.setMessage(msg)
.setCancelable(false)
//確定按鈕
.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 結束Activity
finish();
}
//取消按鈕
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
return;
}
});
//創建對話框
AlertDialog alert = builder.create();
//顯示對話框
alert.show();
}
private void aboutAlert(String msg){
//實例化AlertDialog.Builder
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//設置顯示信息
builder.setMessage(msg)
.setCancelable(false)
//確定按鈕
.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
//創建對話框
AlertDialog alert = builder.create();
//顯示對話框
alert.show();
}
}
案例二:直接在Activity類中創建菜單:
public class Option_Menu extends Activity {
//菜單項ID常量
private static final int Item_Start = Menu.FIRST;
private static final int Item_Exit = Menu.FIRST+1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.option_menu);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, Item_Start, 0, "開始");
menu.add(0, Item_Exit, 0, "退出");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
//菜單項1被選擇
case Item_Start:
//這只Activity標題
setTitle("開始游戲");
break;
//菜單項1被選擇
case Item_Exit:
setTitle("退出!");
break;
}
return true;
}
}
出處:http://blog.csdn.net/cl05300629/article/details/17717573 作者:伫望碧落