Example #1
0
  public void saveActionViewStates(Bundle outStates) {
    SparseArray<Parcelable> viewStates = null;

    final int itemCount = size();
    for (int i = 0; i < itemCount; i++) {
      final MenuItem item = getItem(i);
      final View v = item.getActionView();
      if (v != null && v.getId() != View.NO_ID) {
        if (viewStates == null) {
          viewStates = new SparseArray<Parcelable>();
        }
        v.saveHierarchyState(viewStates);
        if (item.isActionViewExpanded()) {
          outStates.putInt(EXPANDED_ACTION_VIEW_ID, item.getItemId());
        }
      }
      if (item.hasSubMenu()) {
        final SubMenuBuilder subMenu = (SubMenuBuilder) item.getSubMenu();
        subMenu.saveActionViewStates(outStates);
      }
    }

    if (viewStates != null) {
      outStates.putSparseParcelableArray(getActionViewStatesKey(), viewStates);
    }
  }
 private Parcelable onSaveInstanceState() {
   SparseArray<Parcelable> state = new SparseArray<>();
   itemView.saveHierarchyState(state);
   Bundle bundle = new Bundle();
   bundle.putSparseParcelableArray(STATE, state);
   return bundle;
 }
 /**
  * Save views regardless what's the current policy is.
  *
  * @param view view to save
  * @param id unique id for the view within this ViewsStateBundle
  */
 protected final void saveViewUnchecked(View view, int id) {
   if (mChildStates != null) {
     String key = getSaveStatesKey(id);
     SparseArray<Parcelable> container = new SparseArray<Parcelable>();
     view.saveHierarchyState(container);
     mChildStates.put(key, container);
   }
 }
 /**
  * The on screen view is saved when policy is not {@link #SAVE_NO_CHILD}.
  *
  * @param bundle Bundle where we save the on screen view state. If null, a new Bundle is created
  *     and returned.
  * @param view The view to save.
  * @param id Id of the view.
  */
 public final Bundle saveOnScreenView(Bundle bundle, View view, int id) {
   if (mSavePolicy != SAVE_NO_CHILD) {
     String key = getSaveStatesKey(id);
     SparseArray<Parcelable> container = new SparseArray<Parcelable>();
     view.saveHierarchyState(container);
     if (bundle == null) {
       bundle = new Bundle();
     }
     bundle.putSparseParcelableArray(key, container);
   }
   return bundle;
 }
Example #5
0
 public void saveViewState(View view) {
   SparseArray<Parcelable> viewState = new SparseArray<Parcelable>();
   view.saveHierarchyState(viewState);
   this.viewState = viewState;
 }