我正在尝试使用Android操作栏的子菜单功能,因为我还无法弄清楚Spinner菜单。基本上,我想要的是让我当前的webview活动根据所选的菜单项打开一个新的URL。这很好用。问题是,当我单击父项名称时,它会刷新当前的webview视图。应该没有活动,但我不知道如何指定。我的代码如下。有人可以解释如何使父项(在下面的代码中注释)没有动作?感谢
<item android:id="@+id/apps" android:title="Action" android:showAsAction="always"> //THIS IS SUPPOSED TO BE A DROP-DOWN MENU'S TITLE, AND SHOULD NOT PERFORM ANY ACTION, CURRENTLY REFRESHES CURRENT WEBVIEW VIEW.
<menu>
<item android:id="@+id/item1" android:title="Item 1"></item> //OPENS WEBVIEW URL
<item android:id="@+id/item2" android:title="Item 2"></item> //OPENS WEBVIEW URL
<item android:id="@+id/item3" android:title="Item 3"></item> //OPENS WEBVIEW URL
<item android:id="@+id/item4" android:title="Item 4"></item> //OPENS WEBVIEW URL
</menu>
</item>
这是单击其中一个菜单项时执行的代码:
//NOTE THAT THERE IS NO CASE DECLARATION FOR - R.id.apps - maybe I need one?
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.item1:
webview.loadUrl ("http://www.url1.com");
return true;
case R.id.item2:
webview.loadUrl ("http://www.url2.com");
return true;
case R.id.item3:
webview.loadUrl ("http://www.url3.com");
return true;
case R.id.item4:
webview.loadUrl ("http://www.url4.com");
return true;
default:
return super.onOptionsItemSelected(item);
}
}
答案 0 :(得分:0)
在永远打猎之后,我终于找到了这个问题的答案。
作为我的问题的简要说明,我创建了一个包含4个项目的菜单。其中2个项目包含子菜单。这些子菜单的父项在单击时刷新了我当前的webview,这是一个问题。我希望这些父项在点击时不执行任何操作(仅打开子菜单)。这是修复:
//NOTE THAT THERE IS NO CASE DECLARATION FOR - R.id.apps - maybe I need one? -- ANSWER IS YES
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// ADDING CASE DECLARATION FOR R.id.apps //
case R.id.apps:
{ }
return true;
// END ADDING DECLARATION FOR R.id.apps //
// NOTE: For a menu item that you wish to perform no action when selected,
case R.id.item1:
webview.loadUrl ("http://www.url1.com");
return true;
case R.id.item2:
webview.loadUrl ("http://www.url2.com");
return true;
case R.id.item3:
webview.loadUrl ("http://www.url3.com");
return true;
case R.id.item4:
webview.loadUrl ("http://www.url4.com");
return true;
default:
return super.onOptionsItemSelected(item);
}
}