我正在使用ActionBarSherlock,當用戶做某些事情時,我需要更改操作欄上的一些圖標。爲了我必須保存以便將來使用操作欄:Android - 將接口放入Bundle
private Menu actionBarMenu;
...
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.map_activity_menu, menu);
actionBarMenu = menu;
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
actionBarMenu.findItem(R.id.follow_my_position).setIcon(R.drawable.toolbar_myposition_active);
}
好吧!這是問題出現的地方。當我旋轉的屏幕上,我得到actionBarMenu
NullPointerException
。
我知道......我沒有保存它旋轉屏幕之前,因此通常我會去onSaveInstanceState
和保存我的菜單出現,除了的actionBarMenu
是一個接口...更具體地說,接口COM .actionbarsherlock.view.Menu我不能修改它,以便它實現Parcelable或Serializable。
那麼如何保存包中的接口?
不是這是從前一個活動的菜單的引用,而不是在重新創建(當前)的菜單中的菜單? – Kuffs
哦,是的,它會。我沒有確切地閱讀這個問題,並認爲你正在試圖保留任何不依賴於你的「活動」的定製類。我的錯。 – Thrakbad
找不到任何叫做'onRetainCustomNonConfigurationInstance()'的方法,但是我發現'onRetainNonConfigurationInstance()',它工作得很好。謝謝:) – Mehdiway