我如何找出在我的 ActionBar MenuItem 上单击的是哪个?
How do I find out which is clicked on my ActionBar MenuItem?
我如何知道某个项目是否被点击?
既然我知道如果说 事件 A 将在仅单击操作栏的一个按钮后发生,我该如何实现这样的事情?
您在 onOptionsSelected(MenuItem item)
方法中创建的方法类似于按钮的 OnClickListener
。
它通过方法 getItemId()
请求菜单项的 ID,然后为每个项目处理特定的点击。例如,当单击菜单中的设置时启动 SettingsActivity
但请查看评论的 tutorial 以了解更多信息。
实现它所需的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_search:
openSearch();
return true;
case R.id.action_settings:
openSettings();
return true;
default:
return super.onOptionsItemSelected(item);
}
但这一切都可以在教程中找到
我如何知道某个项目是否被点击?
既然我知道如果说 事件 A 将在仅单击操作栏的一个按钮后发生,我该如何实现这样的事情?
您在 onOptionsSelected(MenuItem item)
方法中创建的方法类似于按钮的 OnClickListener
。
它通过方法 getItemId()
请求菜单项的 ID,然后为每个项目处理特定的点击。例如,当单击菜单中的设置时启动 SettingsActivity
但请查看评论的 tutorial 以了解更多信息。
实现它所需的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_search:
openSearch();
return true;
case R.id.action_settings:
openSettings();
return true;
default:
return super.onOptionsItemSelected(item);
}
但这一切都可以在教程中找到