Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android資源文件操作常見的七種典型案例(三)

Android資源文件操作常見的七種典型案例(三)

編輯:關於Android編程

Android中的資源是指非代碼部分,如圖片、音頻、視頻、字符等資源。一般我們都是在assets中保存原生的文件,如:MP3文件,Android程序不能直接訪問,必須通過AssetManager類以二進制流的形式讀取。布局類型文件一般都放在res文件夾下,如:anim,drawable,layout,values,xml,raw,menu等等,這些資源都可以通過R資源類直接訪問。assets中的資源很少用到,res中的資源經常用到。

下面我們繼續講解如何使用這些典型布局類型文件:

七、使用菜單(menu)資源:任何視圖組件的創建方式都有兩種:一種是通過布局文件中聲明創建;另一種通過在代碼中的創建,菜單也是如此。

Android中的菜單分為選項菜單、上下文菜單和子菜單,都可以在XML文件中聲明定義,在代碼中通過MenuInflater類使用。

1)典型菜單資源文件結構:

根元素,在根元素裡面會嵌套子元素,元素總也可以嵌套形成子菜單。

2)

根元素沒有屬性,它包含子元素

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文件:


android:icon="@drawable/ic_launcher"
android:title="File">

android:id="@+id/noncheckable_group"
android:checkableBehavior="none">
android:id="@+id/newFile"
android:title="New"
android:alphabeticShortcut="n">

android:id="@+id/openFile"
android:title="Open"
android:alphabeticShortcut="o">

android:id="@+id/saveFile"
android:title="Save"
android:alphabeticShortcut="s">




android:title="Edit"
android:icon="@drawable/ic_launcher">

android:id="@+id/edit_group"
android:checkableBehavior="single">
android:id="@+id/cut"
android:title="Cut">

android:id="@+id/past"
android:title="Past">




android:title="Help"
android:icon="@drawable/ic_launcher">


android:title="About">

android:title="Exit">





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 作者:伫望碧落
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved