| public class Main extends Activity { // 功能表項目ID // FIRST為Menu類中的整形常量 private static final int ITEM1 = Menu.FIRST; private static final int ITEM2 = Menu.FIRST + 1; private static final int ITEM3 = Menu.FIRST + 2; private static final int ITEM4 = Menu.FIRST + 3; private static final int ITEM5 = Menu.FIRST + 4; private static final int ITEM6 = Menu.FIRST + 5; private static final int ITEM7 = Menu.FIRST + 6; TextView myTV; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myTV = (TextView) findViewById(R.id.myTV); // 此時為myTv設定操作功能表,長按TextView時響應函數 registerForContextMenu(myTV); } @Override // 點擊功能表按鈕響應的事件 public boolean onCreateOptionsMenu(Menu menu) { /* 一下代碼為選項菜單測試 // 添加功能表項目 // public abstract MenuItemadd(int groupId, int itemId, int order, CharSequence title) // 菜單所在的group,菜單的ID,排列順序,顯示的文字 // add()方法返回一個MenuItem對象。而setIcon是MenuItem的方法 menu.add(0, ITEM1, 0, "開始").setIcon(R.drawable.ic_launcher); menu.add(0, ITEM2, 0, "開始1"); menu.add(1, ITEM3, 0, "開始2"); menu.add(1, ITEM4, 0, "開始3"); menu.add(1, ITEM5, 0, "開始4"); // menu.add(0, ITEM6, 0, "開始5"); // menu.add(0, ITEM7, 0, "開始6"); */ /** * 以下代碼為添加子功能表的測試代碼 */ // 添加子功能表 SubMenu subFile = menu.addSubMenu("檔案"); SubMenu editFile = menu.addSubMenu("編輯"); // 為子功能表添加功能表項目 subFile.add(0, ITEM1, 0, "建立"); subFile.add(0, ITEM2, 0, "開啟"); return true; } @Override // 菜單被選中時觸發的事件 public boolean onOptionsItemSelected(MenuItem item) { /* // 在此說明一下,Menu相當於一個容器,而MenuItem相當於容器中容納的東西 switch(item.getItemId()) { case ITEM1: // 設定Activity的Title setTitle("開始遊戲1"); break; case ITEM2: setTitle("開始遊戲2"); break; case ITEM3: setTitle("開始遊戲3"); break; case ITEM4: setTitle("開始遊戲4"); break; case ITEM5: setTitle("開始遊戲5"); break; case ITEM6: setTitle("開始遊戲6"); break; case ITEM7: setTitle("開始遊戲7"); break; } */ /** * 子功能表項響應代碼 */ switch(item.getItemId()) { case ITEM1: // 設定Activity的Title setTitle("建立檔案"); break; case ITEM2: setTitle("開啟檔案"); break; } return true; } @Override // 建立操作功能表 public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // 向操作功能表中添加功能表項目 // 注意此處的menu是ContextMenu menu.add(0, ITEM1, 0, "紅色背景"); menu.add(0, ITEM2, 0, "綠色背景"); menu.add(1, ITEM3, 0, "白色背景"); } @Override public boolean onContextItemSelected(MenuItem item) { switch(item.getItemId()) { case ITEM1: myTV.setBackgroundColor(Color.RED); break; case ITEM2: myTV.setBackgroundColor(Color.GREEN); break; case ITEM3: myTV.setBackgroundColor(Color.WHITE); break; } return true; } } |