我试图保存操作栏显示选项,因此当方向发生变化时,我可以恢复其值。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// ...
if (savedInstanceState != null) {
actionbar.setDisplayOptions(savedInstanceState.getInt("ab_displayoptions"));
}
// ...
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("ab_displayoptions", actionBar.getDisplayOptions());
}
但是当我尝试在onCreateView()中获取值时,我得到了这个:
Must be one or more of: ActionBar.DISPLAY_USE_LOGO, ActionBar.DISPLAY_SHOW_HOME, ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_SHOW_TITLE, ActionBar.DISPLAY_SHOW_CUSTOM
还有其他更好的方法吗?
答案 0 :(得分:-1)
getDisplayOptions返回一个int,而不是long。此外,做一些检查是否设置。试试这个:
获取状态:
if (savedInstanceState != null) {
int opts = savedInstanceState.getInt("ab_displayoptions", -1);
if (opts != -1) {
actionbar.setDisplayOptions(opts);
}
}
保存状态:
outState.putInt("ab_displayoptions", actionBar.getDisplayOptions());