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; }
public void saveViewState(View view) { SparseArray<Parcelable> viewState = new SparseArray<Parcelable>(); view.saveHierarchyState(viewState); this.viewState = viewState; }