【发布时间】:2014-02-14 07:21:23
【问题描述】:
我正在使用 ActionBarSherlock,当用户执行某些操作时,我需要更改操作栏上的一些图标。为此,我必须保存操作栏以供以后使用:
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。
那么我怎样才能在包中保存一个界面呢?
【问题讨论】:
标签: android actionbarsherlock parcelable serializable