You are on page 1of 15

Ngy 7 thng 6 nm 2014 Bi tp 22: Thc hnh v Menu trong Android | Dong Nai University of Technology

http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ 1/15
Dong Nai University of Technology
Hin Ti L Nguyn Kh Ca Quc Gia
Bi tp 22: Thc hnh v Menu trong Android
By Trn Duy Thanh on April 15, 2013






i
12 Votes
- Menu v Context menu l nhng control rt hu dng v n rt c a chung, do chng ta
phi bit v n lm cho ng dng ca Ta t hiu sut cao hn.
- Trc tin Ti s trnh by v Menu:
+ Ty vo tng phin bn Android hay sn phm ca hng sn xut m chc nng hin th menu c
khc nhau cht xu.
+ y Ti ni my o thi, hin th Menu th ta lm nh sau:
Ngy 7 thng 6 nm 2014 Bi tp 22: Thc hnh v Menu trong Android | Dong Nai University of Technology
http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ 2/15
(http://duythanhcse.files.wordpress.com/2013/04/22_menu_0.png)- Nu ng dng ca bn c s dng
Menu th ch cn click vo nt c ch Menu l s hin th ra.
0) Menu t ng pht sinh khi chng ta to mt Android Project:
- Bn l mi ln to mt Android Project, n s t to cho ta XML menu Resource ng thi trong
MainActivity cng gi sn hm cho chng ta load Menu:
Ngy 7 thng 6 nm 2014 Bi tp 22: Thc hnh v Menu trong Android | Dong Nai University of Technology
http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ 3/15
(http://duythanhcse.files.wordpress.com/2013/04/22_menu_1.png)
- Nh bn thy th xml resource menu (kin trc bn trong n ta s tnh sau) ca ng dng c lu
trong th mc menu, v mc nhin n cng tn vi Layout.
- Bn m MainActivity ln: Thy n override phng thc onCreateOptionsMenu, dng lnh 18,
19 ca Hm ny c dng ti Menu vo ng dng khi ngi dng click vo nt Menu.
1) Cch to Menu:
a) To Menu bng XML resource:
- Gi ti s c tnh hng dn bn to 1 XML menu resource khc ng thi gip bn ti Menu
Resource mi ny vo ng dng khi nhn nt Menu cng nh vit s kin cho cc Menu Item:
+ Bm chut phi vo th mc menu/ chn New / chn Android XML File:
(http://duythanhcse.files.wordpress.com/2013/04/22_menu_2.png)+Mn hnh New Android XML
hin ln, ta chn Resource type l Menu ging hnh di y, t tn cho n l mymenu ri nhn
finish:
Ngy 7 thng 6 nm 2014 Bi tp 22: Thc hnh v Menu trong Android | Dong Nai University of Technology
http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ 4/15
(http://duythanhcse.files.wordpress.com/2013/04/22_menu_3.png)
+ Sau khi nhn Finish, bn quan st li th mc menu ca ng dng s xut hin mymenu.xml:
(http://duythanhcse.files.wordpress.com/2013/04/22_menu_4.png)+ to cc Menu Item, bn double
click vo mymenu.xml:
Ngy 7 thng 6 nm 2014 Bi tp 22: Thc hnh v Menu trong Android | Dong Nai University of Technology
http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ 5/15
(http://duythanhcse.files.wordpress.com/2013/04/22_menu_5.png)+ Mn hnh trn bn c 2 Tab:
Layout v mymenu.xml, Tab Layout cho php bn to menu bng giao din, tab mymenu.xml cho
php bn to menu bng source code xml.
+ By gi ta s lm menu bng giao din, bn nhn vo nt Add pha bn trn :
Ngy 7 thng 6 nm 2014 Bi tp 22: Thc hnh v Menu trong Android | Dong Nai University of Technology
http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ 6/15
(http://duythanhcse.files.wordpress.com/2013/04/22_menu_6.png)+ mn hnh ny bn chn Item,
ri nhn OK:
Ngy 7 thng 6 nm 2014 Bi tp 22: Thc hnh v Menu trong Android | Dong Nai University of Technology
http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ 7/15
(http://duythanhcse.files.wordpress.com/2013/04/22_menu_7.png)
+ Khi to mt Menu Item th c 2 phn t chnh l Id v Title (Bn xem phn Ti t mu vng). Ta
da vo Id x l coding, bn nn t Id n cho khoa hc, mang tnh gi nh. Nh bn thy , Ti
t id cho Menu Item ny l item_xemdssv th id ny s c t ng cp nhp vo mn hnh pha
bn tri.
+ Cc thuc tnh khc bn t nghin cu trn mng, hoc khi no gp vn v n Ti s trnh by
sau.
+ C nh vy bn tun t to cho y cc Menu Item m bn mong mun.
*** Trng hp bn mun to Sub Menu Item (Menu Item cha cc Menu Item khc):
+ Ti c to thm 1 Menu Item l Xem danh sch lp, by gi Ti mun to thm 3 Sub Menu
Item cho n, bao gm Lp DHTH1A, Lp DHTH1B v Lp DHTH1C:
Ngy 7 thng 6 nm 2014 Bi tp 22: Thc hnh v Menu trong Android | Dong Nai University of Technology
http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ 8/15
(http://duythanhcse.files.wordpress.com/2013/04/22_menu_8.png)
*Theo Hnh trn th bn chn Menu bn mun to Sub Menu cho n trc, y l item_xemlop (s
1 Ti nh du)
*Sau bn chn nt Add :
- Mc Create a new element at the top level, in Menu to Menu cng cp
- Mc Ti t mu vng Create a element in the selected element to Sub Menu.
* Bm OK tin hnh to Sub Menu, mn hnh sau s xut hin:
(http://duythanhcse.files.wordpress.com/2013/04/22_menu_9.png)
Ngy 7 thng 6 nm 2014 Bi tp 22: Thc hnh v Menu trong Android | Dong Nai University of Technology
http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ 9/15
+ Tip tc to Menu Item cho Sub Menu ta chn nt Add, mi th s li y x nh to Menu
Item cha ca n vy. Mun xa th chn nt Remove. Khi bn nhn nt Add th bn s thy
mn hnh quen thuc sau:
(http://duythanhcse.files.wordpress.com/2013/04/22_menu_10.png)
+ Bn chn la nh trn v nhn OK, c lp li nh vy, mi ln to Menu Item th bn t Id v Title
cho n l xong:
Ngy 7 thng 6 nm 2014 Bi tp 22: Thc hnh v Menu trong Android | Dong Nai University of Technology
http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ 10/15
(http://duythanhcse.files.wordpress.com/2013/04/22_menu_11.png)
+ Mun thay i th t xut hin ca cc Menu Item bn chn nt Down, Up.
* Nu mun xem XML resource ca n nh th no th bn chn vo tab mymenu.xml:
(http://duythanhcse.files.wordpress.com/2013/04/22_menu_12.png)
*** By gi bn xem cch gn Menu va to vo ng dng nh th no:
- Bn m MainActivity.java ln:
Ngy 7 thng 6 nm 2014 Bi tp 22: Thc hnh v Menu trong Android | Dong Nai University of Technology
http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ 11/15
(http://duythanhcse.files.wordpress.com/2013/04/22_menu_13.png)
Dng lnh 13, 14: getMenuInflater().inflate(R.menu.mymenu, menu); dng gn Menu XML
Resource vo ng dng, bn chy my o ln v nhn vo nt Menu, bn s thy c kt qu:
(http://duythanhcse.files.wordpress.com/2013/04/22_menu_14.png)+ By gi ta vit Coding x l
s kin cho cc Menu Item:
- vit s kin cho cc Menu Item bn cn Override phng thc onOptionsItemSelected, Trong
phng thc ny ta da v Id ca cc Menu Item x l:
Ngy 7 thng 6 nm 2014 Bi tp 22: Thc hnh v Menu trong Android | Dong Nai University of Technology
http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ 12/15
- Bn nhn vo dng lnh 19 tr xung, y Ti dng switch case x l theo ng Id m ngi
s dng chn la. Ty vo yu cu ca bi ton m chng ta x l trong ny. Ti khuyn bn nn
vit tng hm ring theo nghip v ri c th m gi hm theo ng Menu Item.
- Bn ti code mu y: http://www.mediafire.com/?zawcff1ha6ap3ic (http://www.mediafire.com/?
zawcff1ha6ap3ic)
b) To Menu bng Coding (Runtime):
- Chng ta c th to Menu lc Runtime (khng cn dng XML Resource):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package tranduythanh.com;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater()
.inflate(R.menu.mymenu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId())
{
case R.id.item_xemdssv:
//X l xem danh sch sinh vin
break;
case R.id.item_lopdhth1a:
//x l xem thng tin lp DHTH1A
break;
case R.id.item_lopdhth1b:
break;
case R.id.item_lopdhth1c:
break;
}
return super.onOptionsItemSelected(item);
}
}
1
2
3
4
5
6
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("Menu 1");
menu.add("Menu 2");
SubMenu sub3= menu.addSubMenu("Menu 3");
sub3.add("File 1 Menu 3");
sub3.add("File 2 Menu 3");
Ngy 7 thng 6 nm 2014 Bi tp 22: Thc hnh v Menu trong Android | Dong Nai University of Technology
http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ 13/15
- Bn nhn thy y, vic to Menu lc Runtime rt d dng. Nhng nu nh bn vit code to Menu
nh vy th vic x l gp cht kh khn v bn khng bit Id ca mi Menu Item.
- Do bn nn vit li theo cch sau:
7
8
9
sub3.add("File 3 Menu 3");
return true;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package tranduythanh.com;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
//i s 1 l nhm
//i s 2 l Id cho Menu Item
//i s 3 l th t xut hin ca Menu Item
//i s 4 l tiu cho Menu Item
int itemId=113;
menu.add(0, itemId, 0, "Menu 1");
itemId=114;
menu.add(0,itemId,1,"Menu 2");
SubMenu sub3= menu.addSubMenu("Menu 3");
itemId=115;
sub3.add(0,itemId,0,"File 1 Menu 3");
itemId=116;
sub3.add(0,itemId,1,"File 2 Menu 3");
itemId=117;
sub3.add(0,itemId,2,"File 3 Menu 3");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId())
{
case 113:
//X l Menu 1
break;
case 114:
//X l Menu 2
Ngy 7 thng 6 nm 2014 Bi tp 22: Thc hnh v Menu trong Android | Dong Nai University of Technology
http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ 14/15
- Nh vy mi ln to Menu Item bn nn gn Id cho n v x l theo Id ny trong
hm onOptionsItemSelected.
- Bn ti code mu y: http://www.mediafire.com/?em82rb51dduvnou
(http://www.mediafire.com/?em82rb51dduvnou)
- Bi tp ny Ti s khng lm v d mu ln, Ti dnh khi hc xong Context Menu Ti Demo lun.
- Bi tp sau Ti s hng dn cch lm Context Menu.
- Chc cc bn thnh cng.
Posted in: 2. X l giao din ngi dng
3 responses
1. su June 5, 2013 at 8:33 am | Reply
tha thy e dng bn adt mi ny th bm menu ch no ah. v menu thanh bn phi khng
bm c ah. http://img405.imageshack.us/img405/6674/captureyk.jpg
2. Bi 2 Menu trong Android | Nguyen Van Tuan January 8, 2014 at 2:59 am | Reply
[] break; } return super.onOptionsItemSelected(item); } } Tham kho thm :
http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ []
3. Bi tp 7: Lm quen vi cc Layout trong Android | University of Science Ho Chi Minh
March 23, 2014 at 6:10 am | Reply
[] Bi tp 22: Thc hnh v Menu trong AndroidIn 2. X l giao din ngi dng []
Blog at WordPress.com. The Retro-Fitted Theme.
45
46
47
48
49
50
51
52
53
54
55
56
57
58
break;
case 115:
//X l File 1 ca Menu 3
break;
case 116:
//X l File 2 ca Menu 3
break;
case 117:
//X l File 3 ca Menu 3
break;
}
return super.onOptionsItemSelected(item);
}
}
Ngy 7 thng 6 nm 2014 Bi tp 22: Thc hnh v Menu trong Android | Dong Nai University of Technology
http://duythanhcse.wordpress.com/2013/04/15/bai-tap-22-thuc-hanh-ve-menu-trong-android/ 15/15
Follow
Follow Dong Nai University of Technology
Powered by WordPress.com

You might also like