Question

In my Android application I'm using the ActionBar. I want to show users some status using logo placed in the left side of the ActionBar. I can do this:

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

and it works.

The problem is that this state in to persistent. If I change activity ActionBar reset itself, so default logo is shown. Is there any way to save state of the ActionBar during application runtime?

Était-ce utile?

La solution

Use the standar lifecycle callbacks from Activities

In the OnCreate method of your activity try to read the state

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);
      }
}

And save the state to recovery it later

protected void onSaveInstanceState(Bundle data) {
      super.onSaveInstanceState(data);
      data.putInt(icon_state);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top