Android menu system

1.Icon menu icon&short text

2.Expaned menu

3.Submenus

 

 

create icon menu

 

public boolean onCreateOptionsMenu(Menu menu){

 

}

 

// Create a new check box item.
menu.add(0, CHECKBOX_ITEM, Menu.NONE, "CheckBox").setCheckable(true);
// Create a radio button group.
menu.add(RB_GROUP, RADIOBUTTON_1, Menu.NONE, "Radiobutton 1");
menu.add(RB_GROUP, RADIOBUTTON_2, Menu.NONE, "Radiobutton 2");
menu.add(RB_GROUP, RADIOBUTTON_3, Menu.NONE,
"Radiobutton 3").setChecked(true);
menu.setGroupCheckable(RB_GROUP, true, true);

 

Shortcut keys

menuItem.setShortcut(’0’, ‘b’);

 

Condensed titles

menuItem.setTitleCondensed("Short Title");

 

Icons

menuItem.setIcon(R.drawable.menu_item_icon);

 

Menu item click listener

 

menuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem _menuItem) {
[ ... execute click handling, return true if handled ... ]
return true;
}
});

 

Intents

menuItem.setIntent(new Intent(this, MyOtherActivity.class));

 

Dynamically Updating Menu Items

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
MenuItem menuItem = menu.findItem(MENU_ITEM);
[ ... modify menu items ... ]
return true;
}

 

Handling Menu Selections

public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);

// Find which menu item has been selected
switch (item.getItemId()) {
// Check for each known menu item
case (MENU_ITEM):
[ ... Perform menu handler actions ... ]
return true;
}
// Return false if you have not handled the menu item.
return false;
}

 

Creating Submenus

SubMenu sub = menu.addSubMenu(0, 0, Menu.NONE, "Submenu");
sub.setHeaderIcon(R.drawable.icon);
sub.setIcon(R.drawable.icon);
MenuItem submenuItem = sub.add(0, 0, Menu.NONE, "Submenu Item");

 

Using Context Menus

@Override
public void onCreateContextMenu(ContextMenu menu) {
super.onCreateContextMenu(menu);
menu.add("ContextMenuItem1");
}

 

The more common alternative is to create Activity-specific Context Menus by overriding the
Activity’s onCreateContextMenu method, and registering the Views that should use it using the registerForContextMenu as shown

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EditText view = new EditText(this);
setContentView(view);
registerForContextMenu(view);
}

 

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Context Menu");
menu.add(0, menu.FIRST, Menu.NONE,
"Item 1").setIcon(R.drawable.menu_item);
menu.add(0, menu.FIRST+1, Menu.NONE, "Item 2").setCheckable(true);
menu.add(0, menu.FIRST+2, Menu.NONE, "Item 3").setShortcut(’3’, ‘3’);
SubMenu sub = menu.addSubMenu("Submenu");
sub.add("Submenu Item");
}

 

 

Handling Context Menu Selections

@Override
public boolean onContextItemSelected(MenuItem item) {
super.onContextItemSelected(item);
[ ... Handle menu item selection ... ]
return false;
}

 

To use your Menu resource, use the MenuInflator class within your onCreateOptionsMenu or
onCreateContextMenu event handlers

 

<menu xmlns:android="http://schemas.android.com/apk/res/android"
android:name="Context Menu">
<item
android:id="@+id/item01"

android:icon="@drawable/menu_item"
android:title="Item 1">
</item>

</menu>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值