AndroidContext menu為當使用者在View上,長按螢幕不放兩秒,就會出現一個浮動的功能表。有點類似於使用電腦時,按滑鼠右建的感覺。

小試身手小範例:

為了建立Context menu必須覆寫onCreateContextMenu()以及onContextItemSelected(),在onCreateMenu()中,可以用add()方法來增加Menu Item,或是定義在XML中,並透過registerForContextMenu()為這個View註冊一個ContextMenu

TestExam001.java

import android.app.Activity;

import android.os.Bundle;

import android.view.ContextMenu.ContextMenuInfo;

import android.view.Menu;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.AutoCompleteTextView;

import android.widget.Button;

publicclass TestExam001 extends Activity {

    public String checkedItem ="";

    //設定功能表項目ID

    publicstaticfinalintnewBtnId = Menu.FIRST;

    publicstaticfinalintopenBtnId = Menu.FIRST+1;

    publicstaticfinalintcloseBtnId = Menu.FIRST+2;

    /** Called when the activity is first created. */

    @Override

    publicvoid onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

       

        Button fileButton = (Button)findViewById(R.id.button01);

        Button editButton = (Button)findViewById(R.id.button02);

       

        //把按鈕註冊至ContextMenu

        registerForContextMenu(fileButton);

        registerForContextMenu(editButton);

    }

    publicvoid onCreateContextMenu(android.view.ContextMenu conMenu, View v, ContextMenuInfo menuInfo){

    super.onCreateContextMenu(conMenu, v, menuInfo);

    //使用setHeaderTitle方法設置context menu標題

    conMenu.setHeaderTitle("Context Menu");

    //使用setNumericShortcut方法設定,可使用的數字鑑選擇

    conMenu.add(0, newBtnId, 0, "New").setNumericShortcut('1');

    //設定checkbox是否為可選

    conMenu.add(0, openBtnId, 0, "Open").setCheckable(true);

    conMenu.add(0, closeBtnId, 0, "Close").setCheckable(true);

    }

 

}

main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

    <TextView

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:text="This is the context menu application!"

    />

    <LinearLayout android:orientation="horizontal"     

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:layout_marginTop="30sp"

        >

        <Button

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text=" File "

        android:textSize="20sp"

        android:id="@+id/button01"

        android:layout_marginLeft="80sp"

        />

        <Button

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text=" Edit "

        android:textSize="20sp"

        android:id="@+id/button02"

        android:layout_marginLeft="30sp"

        />

    </LinearLayout>

</LinearLayout>

ContextMenu01.jpg  

按下File或是Edit按鈕兩秒以上就會出現下面的畫面

ContextMenu02.jpg  

arrow
arrow
    文章標籤
    android Context menu
    全站熱搜
    創作者介紹
    創作者 S 的頭像
    S

    S's Journal

    S 發表在 痞客邦 留言(2) 人氣()