Java 类android.widget.Adapter 实例源码

项目:open-rmbt    文件:SectionListAdapter.java   
@Override
public View getView(int position, final View convertView, final ViewGroup parent)
{

    int sectionNum = 0;

    for (final String sectionName : sectionMap.keySet())
    {
        final Adapter adapter = sectionMap.get(sectionName);

        final int size = adapter.getCount() + (hasSectionHeader ? 1 : 0);

        if (position == 0 && hasSectionHeader)
            return sectionAdapter.getView(sectionNum, convertView, parent);

        if (position < size)
            return adapter.getView(position - 1, convertView, parent);

        position -= size;
        sectionNum++;
    }

    return null;
}
项目:android_ui    文件:ScrollableWrapper.java   
/**
 */
@Override
public boolean isScrolledAtEnd() {
    final int childCount = mScrollableView.getChildCount();
    if (childCount == 0) {
        return true;
    }

    final Adapter adapter = mScrollableView.getAdapter();
    final int adapterCount = adapter != null ? adapter.getCount() : 0;
    if (adapterCount == 0) {
        return true;
    }

    final int lastVisiblePos = mScrollableView.getLastVisiblePosition();
    if (lastVisiblePos == (adapterCount - 1)) {
        final View lastChild = mScrollableView.getChildAt(childCount - 1);
        return lastChild != null && lastChild.getBottom() == mScrollableView.getHeight();
    }
    return false;
}
项目:ultrasonic    文件:PullToRefreshAdapterViewBase.java   
private boolean isFirstItemVisible() {
    final Adapter adapter = mRefreshableView.getAdapter();

    if (null == adapter || adapter.isEmpty()) {
        if (DEBUG) {
            Log.d(LOG_TAG, "isFirstItemVisible. Empty View.");
        }
        return true;

    } else {

        /**
         * This check should really just be:
         * mRefreshableView.getFirstVisiblePosition() == 0, but PtRListView
         * internally use a HeaderView which messes the positions up. For
         * now we'll just add one to account for it and rely on the inner
         * condition which checks getTop().
         */
        if (mRefreshableView.getFirstVisiblePosition() <= 1) {
            final View firstVisibleChild = mRefreshableView.getChildAt(0);
            if (firstVisibleChild != null) {
                return firstVisibleChild.getTop() >= mRefreshableView.getTop();
            }
        }
    }

    return false;
}
项目:searchablespinner    文件:SearchableSpinner.java   
public void setSelectedItem(int position) {
    Adapter adapter = mSpinnerListView.getAdapter();
    if (adapter instanceof ISpinnerSelectedView) {
        View selectedView = ((ISpinnerSelectedView) adapter).getSelectedView(position);
        mCurrSelectedView = new SelectedView(selectedView, position, selectedView.getId());
        mSpinnerListView.setSelection(position);
    } else {
        TextView textView = new TextView(mContext);
        textView.setText(mRevealEmptyText);
        mCurrSelectedView = new SelectedView(textView, -1, 0);
        mRevealItem.addView(textView);
    }
    if (mCurrSelectedView == null) {
        if (mOnItemSelected != null)
            mOnItemSelected.onNothingSelected();
    } else if (mCurrSelectedView != null) {
        mRevealItem.removeAllViews();
        mSpinnerListView.removeViewInLayout(mCurrSelectedView.getView());
        mRevealItem.addView(mCurrSelectedView.getView());
        ((BaseAdapter) mSpinnerListView.getAdapter()).notifyDataSetChanged();
        if (mOnItemSelected != null)
            mOnItemSelected.onItemSelected(mCurrSelectedView.getView(), mCurrSelectedView.getPosition(), mCurrSelectedView.getId());
    }
    hideEdit();
}
项目:do_PDFView    文件:ReaderView.java   
@Override
public void setAdapter(Adapter adapter) {

    //  release previous adapter's bitmaps
    if (null!=mAdapter && adapter!=mAdapter) {
        if (adapter instanceof MuPDFPageAdapter){
            ((MuPDFPageAdapter) adapter).releaseBitmaps();
        }
    }


    mAdapter = adapter;
    //mChildViews.clear();
    //removeAllViewsInLayout();
    requestLayout();
}
项目:easyfilemanager    文件:MultiSelectionUtil.java   
private void tryRestoreInstanceState(HashSet<Long> idsToCheckOnRestore) {
    if (idsToCheckOnRestore == null || mListView.getAdapter() == null) {
        return;
    }
    boolean idsFound = false;
    Adapter adapter = mListView.getAdapter();
    for (int pos = adapter.getCount() - 1; pos >= 0; pos--) {
        if (idsToCheckOnRestore.contains(adapter.getItemId(pos))) {
            idsFound = true;
            if (mItemsToCheck == null) {
                mItemsToCheck = new HashSet<Pair<Integer, Long>>();
            }
            mItemsToCheck.add(new Pair<Integer, Long>(pos, adapter.getItemId(pos)));
        }
    }
    if (idsFound) {
        // We found some IDs that were checked. Let's now restore the multi-selection
        // state.
        mActionMode = mActivity.startSupportActionMode(mCallbacks);
    }
}
项目:open-rmbt    文件:SectionListAdapter.java   
@Override
public int getItemViewType(int position)
{
    int type = 1;

    for (final Object section : sectionMap.keySet())
    {

        final Adapter adapter = sectionMap.get(section);
        final int size = adapter.getCount() + (hasSectionHeader ? 1 : 0);

        if (position == 0 && hasSectionHeader)
            return TYPE_SECTION_HEADER;

        if (position < size)
            return type + adapter.getItemViewType(position - 1);

        position -= size;
        type += adapter.getViewTypeCount();
    }

    return -1;
}
项目:open-rmbt    文件:SectionListAdapter.java   
@Override
public Object getItem(int position)
{

    for (final Map.Entry<String,Adapter> entry : sectionMap.entrySet())
    {
        final Adapter adapter = entry.getValue();

        final int size = adapter.getCount() + (hasSectionHeader ? 1 : 0);

        if (position == 0 && hasSectionHeader)
            return entry.getKey();

        if (position < size)
            return adapter.getItem(position - 1);

        position -= size;
    }

    return null;
}
项目:open-rmbt    文件:SectionListAdapter.java   
public Adapter getAdapter(int position)
{
    for (final Adapter adapter : sectionMap.values())
    {
        final int size = adapter.getCount() + (hasSectionHeader ? 1 : 0);

        if (position == 0 && hasSectionHeader)
            return null;

        if (position < size)
            return adapter;

        position -= size;
    }

    return null;
}
项目:open-rmbt    文件:SectionListAdapter.java   
public int indexOf(Object object)
{
    int idx = 0;
    for (final Map.Entry<String,Adapter> entry : sectionMap.entrySet())
    {
        final Adapter adapter = entry.getValue();

        if (object.equals(entry.getKey()))
            return idx;

        for (int i = 0; i < adapter.getCount(); i++)
        {
            if (object.equals(adapter.getItem(i)))
                return idx + (hasSectionHeader ? 1 : 0) + i;
        }

        idx += adapter.getCount() + (hasSectionHeader ? 1 : 0);
    }
    return -1;
}
项目:BlockCanaryEx    文件:DisplayActivity.java   
@Override
public void onNewLog(String logPath) throws RemoteException {
    File file = new File(logPath);
    if(file.exists() && file.isFile()) {
        try {
            final BlockInfoEx blockInfoEx = BlockInfoEx.newInstance(file);
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    mBlockInfoEntries.add(0, blockInfoEx);
                    while (mBlockInfoEntries.size() > sMaxStoreBlockCount) {
                        mBlockInfoEntries.remove(mBlockInfoEntries.size() - 1);
                    }
                    Adapter adapter = mListView.getAdapter();
                    if (adapter instanceof BlockListAdapter) {
                        ((BlockListAdapter) adapter).notifyDataSetChanged();
                    }
                }
            });
        } catch (Exception e) {
            Log.e(TAG, "block info parse failed:" + e);
        }
    }
}
项目:item-reaper    文件:CustomMatchers.java   
public static Matcher<View> withAdaptedData(final Matcher<String> dataMatcher) {
    return new TypeSafeMatcher<View>() {

        @Override
        public void describeTo(Description description) {
            description.appendText("with class name: ");
            dataMatcher.describeTo(description);
        }

        @Override
        public boolean matchesSafely(View view) {
            if (!(view instanceof AdapterView)) {
                return false;
            }
            @SuppressWarnings("rawtypes")
            Adapter adapter = ((AdapterView) view).getAdapter();
            for (int i = 0; i < adapter.getCount(); i++) {
                if (dataMatcher.matches(adapter.getItem(i))) {
                    return true;
                }
            }
            return false;
        }
    };
}
项目:FreeStreams-TVLauncher    文件:AdapterView.java   
void rememberSyncState() {
    if (getChildCount() > 0) {
        this.mNeedSync = true;
        this.mSyncHeight = this.mLayoutHeight;
        View localView;
        if (this.mSelectedPosition >= 0) {
            localView = getChildAt(this.mSelectedPosition - this.mFirstPosition);
            this.mSyncRowId = this.mNextSelectedRowId;
            this.mSyncPosition = this.mNextSelectedPosition;
            if (localView != null)
                this.mSpecificTop = localView.getTop();
            this.mSyncMode = 0;
        } else {
            localView = getChildAt(0);
            Adapter localAdapter = getAdapter();
            if ((this.mFirstPosition >= 0) && (this.mFirstPosition < localAdapter.getCount()))
                this.mSyncRowId = localAdapter.getItemId(this.mFirstPosition);
            else
                this.mSyncRowId = -1L;
            this.mSyncPosition = this.mFirstPosition;
            if (localView != null)
                this.mSpecificTop = localView.getTop();
            this.mSyncMode = 1;
        }
    }
}
项目:FireFiles    文件:MultiSelectionUtil.java   
private void tryRestoreInstanceState(HashSet<Long> idsToCheckOnRestore) {
    if (idsToCheckOnRestore == null || mListView.getAdapter() == null) {
        return;
    }
    boolean idsFound = false;
    Adapter adapter = mListView.getAdapter();
    for (int pos = adapter.getCount() - 1; pos >= 0; pos--) {
        if (idsToCheckOnRestore.contains(adapter.getItemId(pos))) {
            idsFound = true;
            if (mItemsToCheck == null) {
                mItemsToCheck = new HashSet<Pair<Integer, Long>>();
            }
            mItemsToCheck.add(new Pair<Integer, Long>(pos, adapter.getItemId(pos)));
        }
    }
    if (idsFound) {
        // We found some IDs that were checked. Let's now restore the multi-selection
        // state.
        mActionMode = mActivity.startSupportActionMode(mCallbacks);
    }
}
项目:boohee_v5.6    文件:PullToRefreshAdapterViewBase.java   
private boolean isLastItemVisible() {
    Adapter adapter = ((AbsListView) this.mRefreshableView).getAdapter();
    if (adapter == null || adapter.isEmpty()) {
        return true;
    }
    int lastItemPosition = ((AbsListView) this.mRefreshableView).getCount() - 1;
    int lastVisiblePosition = ((AbsListView) this.mRefreshableView).getLastVisiblePosition();
    if (lastVisiblePosition >= lastItemPosition - 1) {
        View lastVisibleChild = ((AbsListView) this.mRefreshableView).getChildAt
                (lastVisiblePosition - ((AbsListView) this.mRefreshableView)
                        .getFirstVisiblePosition());
        if (lastVisibleChild != null) {
            return lastVisibleChild.getBottom() <= ((AbsListView) this.mRefreshableView)
                    .getBottom();
        }
    }
    return false;
}
项目:simple-share-android    文件:MultiSelectionUtil.java   
private void tryRestoreInstanceState(HashSet<Long> idsToCheckOnRestore) {
    if (idsToCheckOnRestore == null || mListView.getAdapter() == null) {
        return;
    }
    boolean idsFound = false;
    Adapter adapter = mListView.getAdapter();
    for (int pos = adapter.getCount() - 1; pos >= 0; pos--) {
        if (idsToCheckOnRestore.contains(adapter.getItemId(pos))) {
            idsFound = true;
            if (mItemsToCheck == null) {
                mItemsToCheck = new HashSet<Pair<Integer, Long>>();
            }
            mItemsToCheck.add(new Pair<Integer, Long>(pos, adapter.getItemId(pos)));
        }
    }
    if (idsFound) {
        // We found some IDs that were checked. Let's now restore the multi-selection
        // state.
        mActionMode = mActivity.startSupportActionMode(mCallbacks);
    }
}
项目:RoMote    文件:SeparatedListAdapter.java   
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    int sectionnum = 0;
    for(Object section : this.sections.keySet()) {
        Adapter adapter = sections.get(section);
        int size = adapter.getCount() + 1;

        // check if position inside this section
        if(position == 0) return headers.getView(sectionnum, convertView, parent);
        if(position < size) return adapter.getView(position - 1, convertView, parent);

        // otherwise jump into next section
        position -= size;
        sectionnum++;
    }
    return null;
}
项目:devbricks    文件:Asserts.java   
public static void assertEquals(Adapter expected, Adapter actual) {
    AndroidTestCase.assertNotNull(actual);

    if (expected == null) {
        AndroidTestCase.assertEquals(0, actual.getCount());
        return;
    }

    AndroidTestCase.assertEquals(expected.getCount(), actual.getCount());

    final int count = expected.getCount();
    for (int i = 0; i < count; i++) {
        AndroidTestCase.assertEquals(
                expected.getItem(i), actual.getItem(i));
    }
}
项目:PullZoomView-    文件:PullToZoomListViewEx.java   
private boolean isFirstItemVisible() {
    final Adapter adapter = mRootView.getAdapter();

    if (null == adapter || adapter.isEmpty()) {
        return true;
    } else {
        /**
         * This check should really just be:
         * mRootView.getFirstVisiblePosition() == 0, but PtRListView
         * internally use a HeaderView which messes the positions up. For
         * now we'll just add one to account for it and rely on the inner
         * condition which checks getTop().
         */
        if (mRootView.getFirstVisiblePosition() <= 1) {
            final View firstVisibleChild = mRootView.getChildAt(0);
            if (firstVisibleChild != null) {
                return firstVisibleChild.getTop() >= mRootView.getTop();
            }
        }
    }

    return false;
}
项目:NewXmPluginSDK    文件:ViewFlow.java   
public void setAdapter(Adapter adapter, int initialPosition) {
    if (mAdapter != null) {
        mAdapter.unregisterDataSetObserver(mDataSetObserver);
    }

    mAdapter = adapter;

    if (mAdapter != null) {
        mDataSetObserver = new AdapterDataSetObserver();
        mAdapter.registerDataSetObserver(mDataSetObserver);

    }
    if (mAdapter == null || mAdapter.getCount() == 0)
        return;

    setSelection(initialPosition);      
}
项目:privacy-friendly-notes    文件:ChecklistNoteActivity.java   
private void saveNote(){
    Adapter a = lvItemList.getAdapter();
    JSONArray jsonArray = new JSONArray();
    try {
        CheckListItem temp;
        for (int i = 0; i < itemNamesList.size(); i++) {
            temp = (CheckListItem) a.getItem(i);
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("name", temp.getName());
            jsonObject.put("checked", temp.isChecked());
            jsonArray.put(jsonObject);
        }
        fillNameIfEmpty();
        id = DbAccess.addNote(getBaseContext(), etName.getText().toString(), jsonArray.toString(), DbContract.NoteEntry.TYPE_CHECKLIST, currentCat);
        Toast.makeText(getApplicationContext(), R.string.toast_saved, Toast.LENGTH_SHORT).show();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
项目:AyoSunny    文件:WaterView.java   
@Override
public void setAdapter(Adapter adapter) {
    if (mAdapter != null) {
        mAdapter.unregisterDataSetObserver(mDataSetObserver);
    }

    if (adapter instanceof AbsWaterAdapter) {
        mAdapter = (AbsWaterAdapter) adapter;
        if (mAdapter != null) {
            mDataSetObserver = new AdapterDataSetObserver();
            mAdapter.registerDataSetObserver(mDataSetObserver);
        }
        if (mAdapter == null || mAdapter.getCount() == 0)
            return;
        resetFocus();
    } else {
        throw new IllegalArgumentException("WaterAdapter requred");
    }
}
项目:QDNews    文件:SwipeLayout.java   
/**
 * if working in {@link AdapterView}, we should response {@link Adapter}
 * isEnable(int position).
 *
 * @return true when item is enabled, else disabled.
 */
private boolean isEnabledInAdapterView() {
    AdapterView adapterView = getAdapterView();
    boolean enable = true;
    if (adapterView != null) {
        Adapter adapter = adapterView.getAdapter();
        if (adapter != null) {
            int p = adapterView.getPositionForView(SwipeLayout.this);
            if (adapter instanceof BaseAdapter) {
                enable = ((BaseAdapter) adapter).isEnabled(p);
            } else if (adapter instanceof ListAdapter) {
                enable = ((ListAdapter) adapter).isEnabled(p);
            }
        }
    }
    return enable;
}
项目:KitchenSecret_Android    文件:ViewFlow.java   
public void setAdapter(Adapter adapter, int initialPosition) {
    if (mAdapter != null) {
        mAdapter.unregisterDataSetObserver(mDataSetObserver);
    }

    mAdapter = adapter;

    if (mAdapter != null) {
        mDataSetObserver = new AdapterDataSetObserver();
        mAdapter.registerDataSetObserver(mDataSetObserver);

    }
    if (mAdapter == null || mAdapter.getCount() == 0)
        return;

    setSelection(initialPosition);
}
项目:foursquared    文件:SeparatedListAdapter.java   
@Override
public int getItemViewType(int position) {
    int type = 1;
    for (Object section : this.sections.keySet()) {
        Adapter adapter = sections.get(section);
        int size = adapter.getCount() + 1;

        // check if position inside this section
        if (position == 0) return TYPE_SECTION_HEADER;
        if (position < size) return type + adapter.getItemViewType(position - 1);

        // otherwise jump into next section
        position -= size;
        type += adapter.getViewTypeCount();
    }
    return -1;
}
项目:foursquared    文件:SeparatedListAdapter.java   
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    int sectionnum = 0;
    for (Object section : this.sections.keySet()) {
        Adapter adapter = sections.get(section);
        int size = adapter.getCount() + 1;

        if (position == 0) return headers.getView(sectionnum, convertView, parent);
        if (position < size) return adapter.getView(position - 1, convertView, parent);

        // otherwise jump into next section
        position -= size;
        sectionnum++;
    }
    return null;
}
项目:ticdesign    文件:PreferenceGroupAdapter.java   
@Override
public int getItemViewType(int position) {
    if (!mHasReturnedViewTypeCount) {
        mHasReturnedViewTypeCount = true;
    }

    final Preference preference = this.getItem(position);

    mTempPreferenceLayout = createPreferenceLayout(preference, mTempPreferenceLayout);

    int viewType = Collections.binarySearch(mPreferenceLayouts, mTempPreferenceLayout);
    if (viewType < 0) {
        // This is a class that was seen after we returned the count, so
        // don't recycle it.
        return Adapter.IGNORE_ITEM_VIEW_TYPE;
    } else {
        return viewType;
    }
}
项目:smoothnovelreader    文件:FlipViewController.java   
public void setAdapter(Adapter adapter, int initialPosition) {
  if (this.adapter != null) {
    this.adapter.unregisterDataSetObserver(adapterDataObserver);
  }

  Assert.assertNotNull("adapter should not be null", adapter);

  this.adapter = adapter;
  adapterDataCount = adapter.getCount();

  adapterDataObserver = new MyDataSetObserver();
  this.adapter.registerDataSetObserver(adapterDataObserver);
  if (adapterDataCount > 0) {
    setSelection(initialPosition);
  }
}
项目:privacy-friendly-notes    文件:ChecklistNoteActivity.java   
private void updateNote(){
    Adapter a = lvItemList.getAdapter();
    JSONArray jsonArray = new JSONArray();

    try {
        CheckListItem temp;
        for (int i = 0; i < itemNamesList.size(); i++) {
            temp = (CheckListItem) a.getItem(i);
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("name", temp.getName());
            jsonObject.put("checked", temp.isChecked());
            jsonArray.put(jsonObject);
        }
        fillNameIfEmpty();
        DbAccess.updateNote(getBaseContext(), id, etName.getText().toString(), jsonArray.toString(), currentCat);
        Toast.makeText(getApplicationContext(), R.string.toast_updated, Toast.LENGTH_SHORT).show();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
项目:InBoxStyleLayout    文件:InboxLayoutListView.java   
protected boolean isReadyForDragEnd(){
    final Adapter adapter = dragableView.getAdapter();

    if (null == adapter || adapter.isEmpty()) {
        return true;
    }
    else {
        final int lastItemPosition = dragableView.getCount() - 1;
        final int lastVisiblePosition = dragableView.getLastVisiblePosition();
        if (lastVisiblePosition >= lastItemPosition - 1) {
            final int childIndex = lastVisiblePosition - dragableView.getFirstVisiblePosition();
            final View lastVisibleChild = dragableView.getChildAt(childIndex);
            if (lastVisibleChild != null) {
                return lastVisibleChild.getBottom() <= dragableView.getBottom();
            }
        }
    }
    return false;
}
项目:SwipeCard-    文件:SwipeFlingAdapterView.java   
/**
 * A shortcut method to set both the listeners and the adapter.
 *
 * @param context The activity context which extends onFlingListener, OnItemClickListener or both
 * @param mAdapter The adapter you have to set.
 */
public void init(final Context context, Adapter mAdapter) {
    if(context instanceof onFlingListener) {
        mFlingListener = (onFlingListener) context;
    }else{
        throw new RuntimeException("Activity does not implement SwipeFlingAdapterView.onFlingListener");
    }
    if(context instanceof OnItemClickListener){
        mOnItemClickListener = (OnItemClickListener) context;
    }
    setAdapter(mAdapter);
}
项目:SwipeCard-    文件:SwipeFlingAdapterView.java   
@Override
public void setAdapter(Adapter adapter) {
    if (mAdapter != null && mDataSetObserver != null) {
        mAdapter.unregisterDataSetObserver(mDataSetObserver);
        mDataSetObserver = null;
    }

    mAdapter = adapter;

    if (mAdapter != null  && mDataSetObserver == null) {
        mDataSetObserver = new AdapterDataSetObserver();
        mAdapter.registerDataSetObserver(mDataSetObserver);
    }
}
项目:android_ui    文件:ListViewWidget.java   
/**
 */
@Override
public Parcelable onSaveInstanceState() {
    final Adapter adapter = getAdapter();
    if (adapter != null) {
        final Parcelable adapterState = saveAdapterState(adapter);
        if (adapterState != null) {
            final CollectionSavedState savedState = new CollectionSavedState(super.onSaveInstanceState());
            savedState.mAdapterState = adapterState;
            return savedState;
        }
    }
    return super.onSaveInstanceState();
}
项目:android_ui    文件:ListViewWidget.java   
/**
 * Saves the current state of the specified <var>adapter</var>.
 *
 * @param adapter The adapter of which state to save. Should be instance of {@link StatefulAdapter}
 *                or one of wrapper adapter ({@link android.widget.WrapperListAdapter}) implementations.
 * @return Adapter's saved state or {@code null} or empty state if the adapter does not save its
 * state or it is not a stateful adapter.
 */
private Parcelable saveAdapterState(Adapter adapter) {
    if (adapter instanceof StatefulAdapter) {
        return ((StatefulAdapter) adapter).saveInstanceState();
    } else if (adapter instanceof WrapperListAdapter) {
        return saveAdapterState(((WrapperListAdapter) adapter).getWrappedAdapter());
    }
    return null;
}
项目:android_ui    文件:ListViewWidget.java   
/**
 */
@Override
public void onRestoreInstanceState(Parcelable state) {
    if (!(state instanceof CollectionSavedState)) {
        super.onRestoreInstanceState(state);
        return;
    }
    final CollectionSavedState savedState = (CollectionSavedState) state;
    super.onRestoreInstanceState(savedState.getSuperState());
    final Adapter adapter = getAdapter();
    if (adapter != null && savedState.mAdapterState != null) {
        this.restoreAdapterState(adapter, savedState.mAdapterState);
    }
}
项目:android_ui    文件:ListViewWidget.java   
/**
 * Restores the saved state of the specified <var>adapter</var>.
 *
 * @param adapter      The adapter of which state to restore. Should be instance of {@link StatefulAdapter}
 *                     or one of wrapper adapter ({@link android.widget.WrapperListAdapter}) implementations.
 * @param adapterState The previously saved adapter state via {@link #saveAdapterState(Adapter)}.
 */
private void restoreAdapterState(Adapter adapter, Parcelable adapterState) {
    if (adapter instanceof StatefulAdapter) {
        ((StatefulAdapter) adapter).restoreInstanceState(adapterState);
    } else if (adapter instanceof WrapperListAdapter) {
        restoreAdapterState(((WrapperListAdapter) adapter).getWrappedAdapter(), adapterState);
    }
}
项目:android_ui    文件:GridViewWidget.java   
/**
 */
@Override
public Parcelable onSaveInstanceState() {
    final Adapter adapter = getAdapter();
    if (adapter != null) {
        final Parcelable adapterState = saveAdapterState(adapter);
        if (adapterState != null) {
            final CollectionSavedState savedState = new CollectionSavedState(super.onSaveInstanceState());
            savedState.mAdapterState = adapterState;
            return savedState;
        }
    }
    return super.onSaveInstanceState();
}
项目:android_ui    文件:GridViewWidget.java   
/**
 * Saves the current state of the specified <var>adapter</var>.
 *
 * @param adapter The adapter of which state to save. Should be instance of {@link StatefulAdapter}
 *                or one of wrapper adapter ({@link android.widget.WrapperListAdapter}) implementations.
 * @return Adapter's saved state or {@code null} or empty state if the adapter does not save its
 * state or it is not a stateful adapter.
 */
private Parcelable saveAdapterState(Adapter adapter) {
    if (adapter instanceof StatefulAdapter) {
        return ((StatefulAdapter) adapter).saveInstanceState();
    } else if (adapter instanceof WrapperListAdapter) {
        return saveAdapterState(((WrapperListAdapter) adapter).getWrappedAdapter());
    }
    return null;
}
项目:android_ui    文件:GridViewWidget.java   
/**
 */
@Override
public void onRestoreInstanceState(Parcelable state) {
    if (!(state instanceof CollectionSavedState)) {
        super.onRestoreInstanceState(state);
        return;
    }
    final CollectionSavedState savedState = (CollectionSavedState) state;
    super.onRestoreInstanceState(savedState.getSuperState());
    final Adapter adapter = getAdapter();
    if (adapter != null && savedState.mAdapterState != null) {
        this.restoreAdapterState(adapter, savedState.mAdapterState);
    }
}
项目:android_ui    文件:GridViewWidget.java   
/**
 * Restores the saved state of the specified <var>adapter</var>.
 *
 * @param adapter      The adapter of which state to restore. Should be instance of {@link StatefulAdapter}
 *                     or one of wrapper adapter ({@link android.widget.WrapperListAdapter}) implementations.
 * @param adapterState The previously saved adapter state via {@link #saveAdapterState(Adapter)}.
 */
private void restoreAdapterState(Adapter adapter, Parcelable adapterState) {
    if (adapter instanceof StatefulAdapter) {
        ((StatefulAdapter) adapter).restoreInstanceState(adapterState);
    } else if (adapter instanceof WrapperListAdapter) {
        restoreAdapterState(((WrapperListAdapter) adapter).getWrappedAdapter(), adapterState);
    }
}