內容相關性功能表(Context Menu)類同PC上按滑鼠右鍵顯示的菜單,在Android平台上是長按來啟用Context Menu,Context Menu一般用來顯示和當前UI內容相關的菜單。
Context Menu的用法和Option Menu非常類似:
首先是建立 菜單資源,在res/menu 下建立menu_context_shape.xml,用來顯示Oval,Pear,Shape2D:
<?xml version=”1.0″ encoding=”utf-8″?>
<menu
xmlns:android=”http://schemas.android.com/apk/res/android“>
<item
android:id=”@+id/mnuOval”
android:title=”Oval”>
</item>
<item
android:id=”@+id/mnuPear”
android:title=”Pear”>
</item>
<item
android:id=”@+id/mnuShape2DDemo”
android:title=”Shape2D”>
</item>
</menu>
展開Context Menu,是通過onCreateContextMenu 方法:
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_context_shape, menu);
}
處理Context Menu事件:
@Override
public boolean onContextItemSelected(MenuItem item) {
menuOption = item.getItemId();
drawImage();
return super.onContextItemSelected(item);
}
為了在長按時能在View上顯示Context Menu,需要為View註冊Context Menu:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
registerForContextMenu(graphic2dView);
}