我正在尝试使用Android操作栏的子菜单功能,因为我还不能弄清楚微调器菜单。基本上,我想要的是让我当前的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);
}
}发布于 2011-12-02 05:37:45
好了,我一直在打猎,终于找到了这个问题的答案。
为了简要说明我的问题所在,我创建了一个包含4个项目的菜单。这些项目中有2个包含子菜单。当点击这些子菜单的父项时,会刷新我当前的网页视图,这是一个问题。我希望这些父项在点击时不做任何事情(只打开子菜单)。修复方法如下:
//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);
}
}https://stackoverflow.com/questions/8335890
复制相似问题