1
假設我有兩項活動。一個叫MainActivity,另一個叫PopupActivity。 我想在用戶訪問PopupActivity之後在MainActivity中擁有一個上下文菜單。如果初始菜單大小爲零,則無法單擊選項菜單
Main [no menu] --> startActivity()/startActivityForResult()
==> Popup --> back/finish()
==> Main [now has menu].
環境細節:
- minSDK:10(需要向後兼容)
- targetSDK:17
- targetDevice:GalaxyTab的2.0
如果在MainActivity具有在開始狀態至少有一個元素,我可以添加/刪除通過onPrepareOptionsMenu獲得所需的菜單項。但是如果MainActiviy裏面有0個菜單元素,android甚至不會在右上角渲染菜單按鈕。
我的問題是:
- 我怎麼錯過?
- 如何告訴android,呈現菜單按鈕,因爲我想添加菜單項。
解決方法靈魂提示無法工作(如將Activity分隔爲兩個等),因爲整個問題有點複雜,但它的核心是這個。我不需要菜單項在開始狀態,我需要他們在第二個。
main_menu.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_add" android:title="@string/add"></item>
<item android:id="@+id/menu_remove" android:title="@string/remove" ></item>
</menu>
MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
if (initState)
{
menu.findItem(R.id.menu_add).setVisible(false);
menu.findItem(R.id.menu_remove).setVisible(false);
} else
{
menu.findItem(R.id.menu_add).setVisible(true);
menu.findItem(R.id.menu_remove).setVisible(true);
}
return super.onPrepareOptionsMenu(menu);
}