Android攻城獅認識ContextMenu

來源:互聯網
上載者:User

標籤:icon   select   XML   粘貼   點擊   建立   out   extends   generated   

什麼是ContextMenu?例如Windows系統的右鍵菜單,在Android中長按某個檔案夾,會跳出菜單,這個菜單就是ContextMenu。ContextMenu與OptionMenu的區別1. OptionMenu對應的是activity,一個activity只能擁有一個選項菜單;2. ContextMenu對應的是View,每一個View都可以設定操作功能表;3. 一般情況下ContextMenu常用於ListView或者GridView。ContextMenu建立方法首先給View 註冊操作功能表registerForContextMenu()添加操作功能表內容 onCreateContextMenu()-- 可以通過代碼動態添加;-- 可以載入xml檔案中的功能表項目。設定菜單點擊後的響應事件 onContextItemSelected()。
 1 public class MainActivity extends ActionBarActivity { 2  3     @Override 4     protected void onCreate(Bundle savedInstanceState) { 5         super.onCreate(savedInstanceState); 6         setContentView(R.layout.fragment_main); 7         showListView(); 8  9     }10 11     // 設定showListView顯示內容12     private void showListView() {13         ListView listView = (ListView) findViewById(R.id.listView1);14         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,15                 android.R.layout.simple_list_item_1, getData());16         listView.setAdapter(adapter);17         this.registerForContextMenu(listView);18 19     }20 21     @Override22     public void onCreateContextMenu(ContextMenu menu, View v,23             ContextMenuInfo menuInfo) {24         // TODO Auto-generated method stub25         super.onCreateContextMenu(menu, v, menuInfo);26         // 設定meun顯示內容27         menu.setHeaderTitle("檔案操作");28         menu.setHeaderIcon(R.drawable.ic_launcher);29         // 方法一 代碼載入30         // menu.add(1, 1, 1, "複製");31         // menu.add(1, 2, 1, "粘貼");32         // menu.add(1, 3, 1, "剪下");33         // menu.add(1, 4, 1, "重新命名");34         // 方法二, xml載入:35         MenuInflater inflater = getMenuInflater();36         inflater.inflate(R.menu.main, menu);37 38     }39 40     // 監聽事件:41     @Override42     public boolean onContextItemSelected(MenuItem item) {43         // TODO Auto-generated method stub44 45         switch (item.getItemId()) {46         // 方法一 代碼載入:47         case 1:48             Toast.makeText(MainActivity.this, "點擊複製", 0).show();49             break;50 51         case 2:52             Toast.makeText(MainActivity.this, "點擊粘貼", 0).show();53             break;54         case 3:55             Toast.makeText(MainActivity.this, "點擊剪下", 0).show();56             break;57 58         case 4:59             Toast.makeText(MainActivity.this, "點擊重新命名", 0).show();60             break;61         // 方法二,xml載入62         case R.id.context_menu_item1:63             Toast.makeText(MainActivity.this, "點擊複製", 0).show();64             break;65         case R.id.context_menu_item2:66             Toast.makeText(MainActivity.this, "點擊粘貼", 0).show();67             break;68         case R.id.context_menu_item3:69             Toast.makeText(MainActivity.this, "點擊剪下", 0).show();70             break;71         case R.id.context_menu_item4:72             Toast.makeText(MainActivity.this, "點擊重新命名", 0).show();73             break;74 75         }76         return super.onContextItemSelected(item);77     }78 79     // 構造listview顯示資料80     private ArrayList<String> getData() {81 82         ArrayList<String> list = new ArrayList<String>();83         for (int i = 1; i < 5; i++) {84             list.add("檔案" + i);85         }86         return list;87     }88 }

 

Android攻城獅認識ContextMenu

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.