android菜單(menu)用法

    Android手機專門用一個按鍵「menu「來顯示菜單。 java

    要實現菜單功能,首先要經過方法onCreateOptionMenu來建立菜單,建立方法有兩種:一種是直接導入有menu的xml文件,一種是用類Menu的方法直接添加。建立好菜單後,用事件監聽器onOptionItemSelected對可以觸發的事件進行監聽。 android

    下面這個例子有兩個Activity,分別有上面的兩種方法實現menu,每一個menu裏都有事件監聽器進行Activity跳轉和退出。 app

1.資源文件下的menu文件res/menu/menu.xml ide

<menu xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:id="@+id/about"  
          android:title="關於" />  
    <item android:id="@+id/exit"  
          android:title="退出" />  
</menu>

Activity01.java 佈局

package com.yarin.android.Examples_04_13;  
  
import android.app.Activity;  
import android.content.Intent;  
import android.os.Bundle;  
import android.view.Menu;  
import android.view.MenuInflater;  
import android.view.MenuItem;  
  
public class Activity01 extends Activity  
{  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState)  
    {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
    }  
  
    /*建立menu*/  
    public boolean onCreateOptionsMenu(Menu menu)  
    {  
        //MenuInflater class is used to instantiate menu XML files into Menu objects   
        MenuInflater inflater = getMenuInflater();  
        //設置menu界面爲res/menu/menu.xml   
        inflater.inflate(R.menu.menu, menu);  
        return true;  
    }  
  
    /*處理菜單事件*/  
    public boolean onOptionsItemSelected(MenuItem item)  
    {  
        //獲得當前選中的MenuItem的ID,   
        int item_id = item.getItemId();  
  
        switch (item_id)  
        {  
            case R.id.about:  
                /* 新建一個Intent對象 */  
                Intent intent = new Intent();  
                /* 指定intent要啓動的類 */  
                intent.setClass(Activity01.this, Activity02.class);  
                /* 啓動一個新的Activity */  
                startActivity(intent);  
                /* 關閉當前的Activity */  
                Activity01.this.finish();  
                break;  
            case R.id.exit:  
                Activity01.this.finish();  
                break;  
        }  
        return true;  
    }  
}

Activity02.java this

package com.yarin.android.Examples_04_13;  
  
import android.app.Activity;  
import android.content.Intent;  
import android.os.Bundle;  
import android.view.Menu;  
import android.view.MenuItem;  
  
public class Activity02 extends Activity  
{  
    public void onCreate(Bundle savedInstanceState)  
    {  
        super.onCreate(savedInstanceState);  
        /* 設置顯示main2.xml佈局 */  
        setContentView(R.layout.main2);  
    }  
  
    /*建立menu*/  
    public boolean onCreateOptionsMenu(Menu menu)  
    {  
        //爲menu添加內容   
        menu.add(0, 0, 0, R.string.ok);  
        menu.add(0, 1, 1, R.string.back);  
        return true;  
    }  
  
    /*處理menu的事件*/  
    public boolean onOptionsItemSelected(MenuItem item)  
    {  
        //獲得當前選中的MenuItem的ID,   
        int item_id = item.getItemId();  
  
        switch (item_id)  
        {  
            case 0:  
            case 1:  
                /* 新建一個Intent對象 */  
                Intent intent = new Intent();  
                /* 指定intent要啓動的類 */  
                intent.setClass(Activity02.this, Activity01.class);  
                /* 啓動一個新的Activity */  
                startActivity(intent);  
                /* 關閉當前的Activity */  
                Activity02.this.finish();  
                break;  
        }  
        return true;  
    }  
}

本例用到了兩個Activity,不要忘記在AndroidManifest.xml中聲明。 spa

相關文章
相關標籤/搜索