編輯:關於android開發
(一)選項菜單
1、簡單的創建菜單:
1 @Override
2 public boolean onCreateOptionsMenu(Menu menu) {
3 super.onCreateOptionsMenu(menu);
4
5 // 添加菜單
6 menu.add("菜單選項1");
7 /*
8 * pram1:組號 pram2:唯一的ID號 pram3:排序號 pram4:標題
9 */
10 menu.add(1, Menu.FIRST, Menu.FIRST, "菜單選項2");
11
12 // 希望顯示菜單就返回true
13 return true;
14 }
2、菜單的分組以及簡單屬性:
1 @Override
2 public boolean onCreateOptionsMenu(Menu menu) {
3 super.onCreateOptionsMenu(menu);
4
5 int group1 = 1;
6 int group2 = 2;
7 menu.add(group1, 1, 1, "item1");
8 menu.add(group1, 2, 2, "item2");
9 menu.add(group2, 3, 3, "item3");
10 menu.add(group2, 4, 4, "item4");
11
12 // menu.removeGroup(group1);//刪除一個組
13 // menu.setGroupVisible(group1, false);//設置可見性
14 // menu.setGroupEnabled(group2, false);//設置是否可點
15 // menu.setGroupCheckable(group2, true, t);//設置一組菜單的勾選情況
16 return true;
17 }
3、響應菜單
一、通過onOptionsItemSelected方法
1 @Override
2 public boolean onOptionsItemSelected(MenuItem item) {
3 // 響應每個菜單項(通過菜單項的ID)
4 switch (item.getItemId()) {
5 case 1:
6 // do something here
7 break;
8 case 2:
9 // do something here
10 break;
11 case 3:
12 // do something here
13 break;
14 case 4:
15 Toast.makeText(this, "hello", 0).show();
16 break;
17 default:
18 // 對沒有處理的事件,交給父類來處理
19 return super.onOptionsItemSelected(item);
20 }
21 //返回true表示處理完菜單項的事件,不需要將該事件繼續傳播下去了
22 return true;
23 }
二、通過監聽
1 //第一步:創建監聽器類
2 class MyMenuItemClickListener implements OnMenuItemClickListener {
3 @Override
4 publicboolean onMenuItemClick(MenuItem item) {
5 // do something here...
6 return true; //finish handling
7 }
8 }
9 //第二步:為菜單項注冊監聽器
10 menuItem.setOnMenuItemClickListener(new MyMenuItemClickListener());
三、通過Intent
(二)子菜單subMenu
注意:Menu可以包含多個SubMenu及menuItem,SubMenu可以包含多個MenuItem,,但是SubMenu不能包含SubMenu。
1 @Override
2 public boolean onCreateOptionsMenu(Menu menu) {
3 //一個menu中可以添加多個子菜單
4 SubMenu subMenu=menu.addSubMenu(1,1, 0, "子菜單");
5
6 //在子菜單中添加多個菜單選項
7 MenuItem menuItem1=subMenu.add(1, 1, 0, "菜單選項1");
8 subMenu.add(1, 2, 1,"菜單選項2");
9 subMenu.add(1, 3, 2,"菜單選項3");
10 subMenu.add(1, 4, 3,"菜單選項4");
11
12 //子菜單不支持顯示圖標,盡管這樣設置不會報錯
13 subMenu.setIcon(R.drawable.ic_launcher);
14
15 //設置菜單選項的圖標
16 menuItem1.setIcon(R.drawable.ic_launcher);
17 return true;
18 }
(三)上下文菜單ContextMenu
1 package com.zzw.contextMenu;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.util.Log;
6 import android.view.ContextMenu;
7 import android.view.ContextMenu.ContextMenuInfo;
8 import android.view.MenuItem;
9 import android.view.View;
10 import android.widget.ArrayAdapter;
11 import android.widget.ListView;
12 import android.widget.Toast;
13
14 public class MainActivity extends Activity {
15 private static final String TAG = "MainActivity";
16 ListView listView;
17
18 @Override
19 protected void onCreate(Bundle savedInstanceState) {
20 Log.d(TAG, "onCreate");
21
22 super.onCreate(savedInstanceState);
23 setContentView(R.layout.activity_main);
24 listView = (ListView) findViewById(R.id.listView);
25
26 simpleShowList();
27 //1.在activity的onCreate方法中為一個view注冊上下文菜單
28 this.registerForContextMenu(listView);
29
30 }
31
32 //2.在onCreateContextMenu中生成上下文菜單。
33 @Override
34 public void onCreateContextMenu(ContextMenu menu, View v,
35 ContextMenuInfo menuInfo) {
36 Log.d(TAG, "onCreateContextMenu_start");
37
38 menu.setHeaderTitle("上下文菜單標題");
39 menu.add(0, 1, 0, "選項1");
40 menu.add(0, 2, 0, "選項2");
41 menu.add(0, 3, 0, "選項3");
42
43 Log.d(TAG, "onCreateContextMenu_stop");
44 }
45
46 //3.在onContextItemSelected中響應上下文菜單項。
47 @Override
48 public boolean onContextItemSelected(MenuItem item) {
49 Log.d(TAG, "onContextItemSelected_start");
50 int item_id = item.getItemId();
51 switch (item_id) {
52 case 1:
53 Toast.makeText(this, "我是上下文菜單選項1", 0).show();
54 break;
55 case 2:
56
57 break;
58 case 3:
59
60 break;
61
62 default:
63 return super.onContextItemSelected(item);
64 }
65 Log.d(TAG, "onContextItemSelected_stop");
66 return true;
67 }
68
69 private void simpleShowList() {
70 Log.d(TAG, "simpleShowList_start");
71 String[] showList = { "顯示1", "顯示2", "顯示3", "顯示4" };
72
73 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
74 android.R.layout.simple_expandable_list_item_1, showList);
75
76 listView.setAdapter(adapter);
77 Log.d(TAG, "simpleShowList_stop");
78 }
79
80 }


(四)通過XML文件添加菜單
1.在res文件下創建menu文件夾,一般默認有的,在裡面new出一個Android xml File來編輯自己的菜單
2.編輯自己的xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <menu xmlns:android="http://schemas.android.com/apk/res/android" > 3 4 <!-- group是分組 --> 5 <group android:id="@+id/group1" > 6 7 <!-- item是一個菜單選項 --> 8 <item 9 android:id="@+id/item1" 10 android:title="菜單選項1(子菜單)"> 11 <!-- 在一個item中添加一個menu就是子菜單 --> 12 <menu> 13 <!-- 子菜單中的菜單選項 --> 14 <item 15 android:icon="@drawable/ic_launcher" 16 android:id="@+id/item1_1" 17 android:title="子菜單內選項1"/> 18 <item 19 android:id="@+id/item1_2" 20 android:title="子菜單內選項2"/> 21 </menu> 22 </item> 23 <item 24 android:id="@+id/item2" 25 android:title="菜單選項2"> 26 </item> 27 </group> 28 <group android:id="@+id/group2" > 29 <item 30 android:id="@+id/item3" 31 android:title="菜單選項4"> 32 </item> 33 <item 34 android:id="@+id/item4" 35 android:title="菜單選項5"> 36 </item> 37 </group> 38 39 </menu>
3.在activity中獲取:
1 @Override
2 public boolean onCreateOptionsMenu(Menu menu) {
3 MenuInflater in = getMenuInflater();
4 in.inflate(R.menu.main, menu);
5 return true;
6 }
7
8 @Override
9 public boolean onOptionsItemSelected(MenuItem item) {
10 switch (item.getItemId()) {
11 case R.id.item1:
12 13 break;
14 case R.id.item2:
15
16 break;
17
18 default:
19 return super.onOptionsItemSelected(item);
20 }
21
22 return true;
23 }


一些基本的屬性:
設置菜單icon
1 <item 2 android:id="@+id/item1" 3 android:title="菜單選項1" 4 android:icon="@drawable/ic_launcher" 5 />
設置菜單選項的可選,android:checkableBehavior,chencked
1 <!-- checkableBehavior設置可選 --> 2 <group android:id="@+id/group1" 3 android:checkableBehavior="all" > 4 <!-- checked設置特定菜單項(被勾中) --> 5 <item 6 android:id="@+id/item1" 7 android:title="菜單選項1" 8 > 9 </item> 10 <item 11 android:id="@+id/item2" 12 android:checked="true" 13 android:title="菜單選項2"> 14 </item> 15 </group>

設置菜單可用不可用android:enable
1 <group android:id="@+id/group1"> 2 <item 3 android:id="@+id/item1" 4 android:title="菜單選項1" 5 android:enabled="true" 6 > 7 </item> 8 <item 9 android:id="@+id/item2" 10 android:title="菜單選項2" 11 android:enabled="false"> 12 </item> 13 </group>

設置菜單選項是否可見android:visible
1 <group android:id="@+id/group1"> 2 <item 3 android:id="@+id/item1" 4 android:title="菜單選項1" 5 android:visible="true" 6 > 7 </item> 8 <item 9 android:id="@+id/item2" 10 android:title="菜單選項2" 11 android:visible="false"> 12 </item> 13 </group> 14

詳解請見:http://www.cnblogs.com/codingmyworld/archive/2011/08/21/2147829.html
Android5.0新特性-Material Design
Android5.0新特性-Material Design 概述 2014年,Google攜Android5.X重裝歸來,全新的UI設計和更加優化的性能,令開發者眼前一亮
第三篇 安卓Android應用程序目錄結構解析,安卓android
第三篇 安卓Android應用程序目錄結構解析,安卓android建立的HelloWorld的應用項目,其代碼是由ADT插件自動生成的,形成Android項目特有的結構
Android開發學習之路-Android中使用RxJava,-androidrxjava
Android開發學習之路-Android中使用RxJava,-androidrxjavaRxJava的核心內容很簡單,就是進行異步操作。類似於Handler和Async
2015烏鎮互聯網大會,母嬰美食快餐類APP入眼,2015烏鎮
2015烏鎮互聯網大會,母嬰美食快餐類APP入眼,2015烏鎮重構與用戶之間的信任感將是這一細分行業的首要任務。未來誰能真正贏得用戶的信任,誰才能笑到最後。 這幾日,整