Ver 1.0 – 2016, FIT - HCMUP<br />
<br />
Lab 05: MENU<br />
Tham khảo: developer.android.com/guide/topics/ui/menus.html<br />
<br />
1 Tạo menu bằng XML resource<br />
<br />
Gõ nội dung menu:<br />
<br />
Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM<br />
<br />
1<br />
<br />
Ver 1.0 – 2016, FIT - HCMUP<br />
<br />
Lab 05: MENU<br />
<br />
Viết code gọi menu trong MainActivity:<br />
<br />
Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM<br />
<br />
2<br />
<br />
Ver 1.0 – 2016, FIT - HCMUP<br />
<br />
Lab 05: MENU<br />
<br />
@Override<br />
public boolean onCreateOptionsMenu(Menu menu) {<br />
return super.onCreateOptionsMenu(menu);<br />
}<br />
Sửa lại thành:<br />
<br />
Xử lý sự kiện click lên Menu Item:<br />
Override phương thức onOptionsItemSelected<br />
@Override<br />
public boolean onOptionsItemSelected(MenuItem item) {<br />
//dựa theo id menuitem đang chọn<br />
switch(item.getItemId())<br />
{<br />
case R.id.item_xemdssv:<br />
Toast.makeText(MainActivity.this, "Bạn chọn Xem Danh<br />
sách Sinh viên", Toast.LENGTH_LONG).show();<br />
break;<br />
Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM<br />
<br />
3<br />
<br />
Ver 1.0 – 2016, FIT - HCMUP<br />
<br />
Lab 05: MENU<br />
<br />
//vâng vâng cho những menuitem khác<br />
}<br />
return super.onOptionsItemSelected(item);<br />
}<br />
<br />
2 Tạo menu bằng code<br />
Sử dụng code lúc Runtime để tạo Menu thay vì dùng XML Resource.<br />
@Override<br />
public boolean onCreateOptionsMenu(Menu menu) {<br />
menu.add("Menu 1");<br />
menu.add("Menu 2");<br />
SubMenu submenu3= menu.addSubMenu("Menu 3");<br />
submenu3.add("SubMenu 1.3");<br />
submenu3.add("SubMenu 2.3);<br />
submenu3.add("SubMenu 3.3");<br />
return true;<br />
}<br />
Với cách làm như trên sẽ gặp khó khăn khi xác định ID của MenuItem.<br />
@Override<br />
public boolean onCreateOptionsMenu(Menu menu) {<br />
//Đối số 1 là nhóm<br />
//Đối số 2 là Id cho Menu Item<br />
//Đối số 3 là thứ tự xuất hiện của Menu Item<br />
//Đối số 4 là tiêu đề cho Menu Item<br />
int itemId = 1000;<br />
menu.add(0, itemId, 0, "Thể thao");<br />
itemId = 1001;<br />
menu.add(0,itemId, 1, "Tin tức");<br />
SubMenu sub3= menu.addSubMenu(0, itemId, 2, "Danh mục Tin<br />
tức");<br />
itemId = 1002;<br />
sub3.add(0, itemId, 0,"VNExpress");<br />
itemId = 1003;<br />
sub3.add(0, itemId, 1,"ZING");<br />
itemId = 1004;<br />
sub3.add(0, itemId, 2,"Tuổi trẻ");<br />
return true;<br />
}<br />
Và xử lý sự kiện click lên Menu Item:<br />
@Override<br />
public boolean onOptionsItemSelected(MenuItem item) {<br />
Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM<br />
<br />
4<br />
<br />
Ver 1.0 – 2016, FIT - HCMUP<br />
<br />
Lab 05: MENU<br />
<br />
//dựa theo id menuitem đang chọn<br />
switch(item.getItemId())<br />
{<br />
case 1004://TuoiTre<br />
startActivity(new Intent(Intent.ACTION_VIEW,<br />
Uri.parse("http://tuoitre.vn")));<br />
break;<br />
//vâng vâng<br />
}<br />
return super.onOptionsItemSelected(item);<br />
}<br />
<br />
3 Popup Menu<br />
3.1<br />
<br />
Xây dựng Menu Resource<br />
<br />
3.2<br />
<br />
Thiết kế giao diện<br />
<br />
3.3<br />
<br />
Source xử lý<br />
<br />
btnShowPopUp = (Button)findViewById(R.id.btnShowPopUp);<br />
btnShowPopUp.setOnClickListener(new View.OnClickListener() {<br />
@Override<br />
public void onClick(View v) {<br />
PopupMenu popupMenu = new PopupMenu(MainActivity.this,<br />
Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM<br />
<br />
5<br />
<br />