標籤:
所謂操作功能表就是當我們長按某一個檔案時彈出的菜單
操作這個菜單我們要重寫onCreateContextMenu()方法
如上一篇文章一樣,對於這個菜單中選型的操作也有動態添加和xml檔案添加兩種方法
首先是動態添加
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); menu.setHeaderTitle("檔案操作"); //操作功能表的標題 menu.setHeaderIcon(R.mipmap.ic_launcher);//表徵圖 menu.add(1,1,1,"複製"); menu.add(1,2,1,"粘貼"); menu.add(1,3,1,"剪下"); menu.add(1,4,1,"重新命名"); }
然後是xml檔案添加
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); menu.setHeaderTitle("檔案操作"); //操作功能表的標題 menu.setHeaderIcon(R.mipmap.ic_launcher);//表徵圖 MenuInflater infalter = getMenuInflater(); // infalter.inflate(R.menu.main,menu);//執行個體化main布局 }
xml檔案的布局
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_item1" android:orderInCategory="100" <!-- 決定菜單中選項的排列順序 數字越大優先順序越低,排位越靠後--> android:showAsAction="never" <!-- 表示是否預設顯示出來--> android:title="複製"></item> <item android:id="@+id/menu_item2" android:orderInCategory="100" android:showAsAction="never" android:title="粘貼"></item> <item android:id="@+id/menu_item3" android:orderInCategory="100" android:showAsAction="never" android:title="剪下"></item> <item android:id="@+id/menu_item4" android:orderInCategory="100" android:showAsAction="never" android:title="重新命名"></item></menu>
對ContextMenu的監聽
@Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.menu_item1: Toast.makeText(MainActivity.this, "你選擇了複製", Toast.LENGTH_SHORT).show(); break; case R.id.menu_item2: Toast.makeText(MainActivity.this, "你選擇了粘貼", Toast.LENGTH_SHORT).show(); break; case R.id.menu_item3: Toast.makeText(MainActivity.this, "你選擇了剪下", Toast.LENGTH_SHORT).show(); break; case R.id.menu_item4: Toast.makeText(MainActivity.this, "你選擇了重新命名", Toast.LENGTH_SHORT).show(); break; } return super.onContextItemSelected(item); }
Android 菜單 之 操作功能表ContextMenu