保存动作栏状态

时间:2014-03-28 11:09:51

标签: android android-actionbar actionbarsherlock

Android申请表中,我使用了ActionBar。我想使用放置在ActionBar左侧的徽标向用户显示某些状态。我可以这样做:

ActionBar actionBar = getSupportActionBar();
actionBar.setIcon(R.drawable.new_icon);

它有效。

问题在于这种状态在持久。如果我更改活动ActionBar重置自身,则会显示默认徽标。有没有办法在应用程序运行时期间保存ActionBar的状态?

1 个答案:

答案 0 :(得分:1)

使用活动

中的标准生命周期回调

在您的活动的OnCreate方法中尝试读取状态

public void onCreate(Bundle icicle) {
      if (data!=null)
      {
          ActionBar actionBar = getSupportActionBar();
          int state = data.getInt("status");
          if (state==1)
               actionBar.setIcon(R.drawable.icon_a);
          else
               actionBar.setIcon(R.drawable.icon_b);
      }
}

并保存状态以便稍后恢复

protected void onSaveInstanceState(Bundle data) {
      super.onSaveInstanceState(data);
      data.putInt(icon_state);
}