Tải bản đầy đủ (.pptx) (12 trang)

Hướng dẫn lập trình Android bài 12

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (72.31 KB, 12 trang )

Bài 12: Menu


Nội dung bài học

1.
2.
3.

Option menu và action bar
Context menu
Popup menu


Option menu và action bar

-

Option menu là 1 tập các items cho Activity thường dùng như: Tìm kiếm, cài đặt,
gửi phản hồi, thông tin ứng dụng...

-

Ở hệ điều hành 2.3 hoặc nhỏ hơn thì option menu được hiển thị bằng cách nhấn
Menu button.

-

Ở hệ điều hành 3.0 hoặc lớn hơn thì option menu được hiển thị trên action bar
của màn hình.



Option menu và action bar
1. Tạo option menu bằng xml
<menu xmlns:android=" />xmlns:app=" />xmlns:tools=" />tools:context="com.vietpro.baihocthu12.MainActivity" > 
android:id="@+id/action_settings"
android:icon="@drawable/ic_launcher"
android:showAsAction="always"
android:title="Settings"/>
android:id="@+id/action_about"
android:showAsAction="always"
android:title="About"/>
android:id="@+id/action_help"
android:showAsAction="always"
android:title="Help"/>
android:id="@+id/action_search"


Option menu và action bar


Để hiển thị menu phải ghi đè phương thức sau trong file MainActivity

@Override
} public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);

return true;



Xử lý sự kiện click vào từng item trong menu

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case R.id.action_about:
Toast.makeText(MainActivity.this, "About", Toast.LENGTH_SHORT).show();
break;
case R.id.action_help:
Toast.makeText(MainActivity.this, "Help", Toast.LENGTH_SHORT).show();
break;
default:
break;


Option menu và action bar


Tạo submenu:

android:id="@+id/action_search"
android:showAsAction="always"
android:title="Search">
<menu>

android:id="@+id/action_search_by_name"
android:showAsAction="always"
android:title="Search by name"/>
android:id="@+id/action_search_by_size"
android:showAsAction="always"
android:title="Search by size"/>
</menu>


Option menu và action bar
2. Tạo option menu bằng code
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Đối số 1 là nhóm
//Đối số 2 là Id cho Menu Item
//Đối số 3 là thứ tự xuất hiện của Menu Item
//Đối số 4 là tiêu đề cho Menu Item
menu.add(Menu.NONE, ACTION_SETTINGS_ID, Menu.NONE, "Settings");
menu.add(Menu.NONE, ACTION_SEARCH_ID, Menu.NONE, "Search");
menu.add(Menu.NONE, ACTION_ABOUT_ID, Menu.NONE, "About");
menu.add(Menu.NONE, ACTION_HELP_ID, Menu.NONE, "Help");
return true;
}


Option menu và action bar



Tạo submenu

@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Đối số 1 là nhóm
//Đối số 2 là Id cho Menu Item
//Đối số 3 là thứ tự xuất hiện của Menu Item
//Đối số 4 là tiêu đề cho Menu Item
menu.add(Menu.NONE, ACTION_SETTINGS_ID, Menu.NONE, "Settings");
SubMenu subMenu = menu.addSubMenu(Menu.NONE, ACTION_SEARCH_ID, Menu.NONE, "Search");
subMenu.add(Menu.NONE, ACTION_SEARCH_BY_NAME_ID, Menu.NONE, "Search by name");
subMenu.add(Menu.NONE, ACTION_SEARCH_BY_SIZE_ID, Menu.NONE, "Search by size");
menu.add(Menu.NONE, ACTION_ABOUT_ID, Menu.NONE, "About");
menu.add(Menu.NONE, ACTION_HELP_ID, Menu.NONE, "Help");
return true;
}


Context menu
-

Context menu xuất hiện khi người dùng long - click vào 1 view bất kỳ. Cũng giống như option menu, context menu
cung cấp các action cho người dùng làm 1 việc gì đó.

-

Đăng ký hiển thị context menu cho 1 view
TextView tv = (TextView) findViewById(R.id.tv_hello);
registerForContextMenu(tv);


-

Để hiển thị context menu phải ghi đè phương thức sau:

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.main, menu);
}


Context menu
-

Xử lý sự kiện click vào mỗi item của menu

@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_search:
Toast.makeText(MainActivity.this, "Search",
Toast.LENGTH_SHORT).show();
break; 
default:
break;
}
return super.onContextItemSelected(item);
}



Popup menu


Tạo PopupMenu và xử lý sự kiện click trên mỗi item như sau:

private void showPopupMenu(View v){
PopupMenu popupMenu = new PopupMenu(MainActivity.this, v);
MenuInflater menuInflater = getMenuInflater();
popupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
return false;
}
});
menuInflater.inflate(R.menu.main, popupMenu.getMenu());
popupMenu.show();
}


Q&A



×