在Android中Context 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>
按下File或是Edit按鈕兩秒以上就會出現下面的畫面
留言列表