Android攻城狮认识ContextMenu
生活随笔
收集整理的這篇文章主要介紹了
Android攻城狮认识ContextMenu
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
什么是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 @Override
22 public void onCreateContextMenu(ContextMenu menu, View v,
23 ContextMenuInfo menuInfo) {
24 // TODO Auto-generated method stub
25 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 @Override
42 public boolean onContextItemSelected(MenuItem item) {
43 // TODO Auto-generated method stub
44
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 }
?
轉載于:https://www.cnblogs.com/my334420/p/6785787.html
總結
以上是生活随笔為你收集整理的Android攻城狮认识ContextMenu的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android攻城狮AsyncTask
- 下一篇: 无法关闭计算机xp,WindowsXP电