Nic*_*ick 23 android menu options-menu
我有一个菜单创建通过:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("Email");
return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)
但我不记得如何设置一个onclicklistener所以当它选择我可以运行我的电子邮件功能.
Dee*_*eeV 40
覆盖onOptionsItemSelected(MenuItem item).所以它会是这样的
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 0:
// do whatever
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
由于这已经得到了很多分,我应该注意到将ID添加到菜单选项中是非常好的.确保它们始终唯一的一种好方法是在ids.xml放在res/values文件夹中的资源中定义它们.
ids.xml
<resources>
<item name="menu_action1" type="id"/>
<item name="menu_action2" type="id"/>
<item name="menu_action3" type="id"/>
</resources>
Run Code Online (Sandbox Code Playgroud)
然后,当您覆盖该onCreateOptionsMenu(Menu menu)方法时,您可以像这样使用ID:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(Menu.NONE, R.id.menu_action1, Menu.NONE, R.string.menu_action1);
menu.add(Menu.NONE, R.id.menu_action2, Menu.NONE, R.string.menu_action1);
return true;
}
Run Code Online (Sandbox Code Playgroud)
覆盖onOptionsItemSelected(MenuItem item).
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_action1:
// do whatever
return true;
case R.id.menu_action2:
// do whatever
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Run Code Online (Sandbox Code Playgroud)
你这样做的原因是Activity用菜单选项覆盖它,但Fragments也可以添加自己的菜单项.使用ids.xml确保ID是唯一的,无论它们放置在哪个顺序.
Dan*_*dan 18
那不行.您应该为菜单项定义ID:
public static final int MENU_ADD = Menu.FIRST;
public static final int MENU_DELETE = Menu.FIRST + 1;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(Menu.NONE, MENU_ADD, Menu.NONE, "Add");
menu.add(Menu.NONE, MENU_DELETE, Menu.NONE, "Delete");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch(item.getItemId())
{
case MENU_ADD:
return true;
case MENU_DELETE:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Run Code Online (Sandbox Code Playgroud)
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.new_game:
newGame();
return true;
case R.id.help:
showHelp();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Run Code Online (Sandbox Code Playgroud)
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.itemid:
//do cool stuff
break;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68682 次 |
| 最近记录: |