Option menu và action bargửi phản hồi, thông tin ứng dụng.... Option menu và action bar1.. Tạo option menu bằng xml... Option menu và action bar Để hiển thị menu phải ghi đè phương thức
Trang 1Bài 12: Menu
Trang 2Nội dung bài học
Trang 3Option menu và action bar
gửi phản hồi, thông tin ứng dụng
Menu button.
của màn hình.
Trang 4Option menu và action bar
1 Tạo option menu bằng xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.vietpro.baihocthu12.MainActivity" >
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_launcher"
android:showAsAction="always"
android:title="Settings"/>
<item
android:id="@+id/action_about"
android:showAsAction="always"
android:title="About"/>
<item
android:id="@+id/action_help"
android:showAsAction="always"
android:title="Help"/>
<item
android:id="@+id/action_search"
android:showAsAction="always"
android:title="Search"/>
</menu>
Trang 5Option 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;
}
return super.onOptionsItemSelected(item);
}
Trang 6Option menu và action bar
Tạo submenu:
<item
android:id="@+id/action_search"
android:showAsAction="always"
android:title="Search">
<menu>
<item
android:id="@+id/action_search_by_name"
android:showAsAction="always"
android:title="Search by name"/>
<item
android:id="@+id/action_search_by_size"
android:showAsAction="always"
android:title="Search by size"/>
</menu>
</item>
Trang 7Option 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;
}
Trang 8Option 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;
}
Trang 9Context menu
cung cấp các action cho người dùng làm 1 việc gì đó.
TextView tv = (TextView) findViewById(R.id.tv_hello);
registerForContextMenu(tv);
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.main, menu);
}
Trang 10Context 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);
}
Trang 11Popup menu
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();
}
Trang 12Q&A