Code example for Adapter

Methods: getCountgetView

0
                mCurrentBufferIndex--;
            } 
 
            // Add new view to buffer 
            int newBufferIndex = mCurrentAdapterIndex + mSideBuffer;
            if (newBufferIndex < mAdapter.getCount()) {
                mLoadedViews.addLast(makeAndAddView(newBufferIndex, true, recycleView));
            } 
 
        } else { // to the left 
            mCurrentAdapterIndex--;
            mCurrentBufferIndex--;
            View recycleView = null;
 
            // Remove view outside buffer range 
            if (mAdapter.getCount() - 1 - mCurrentAdapterIndex > mSideBuffer) {
                recycleView = mLoadedViews.removeLast();
                detachViewFromParent(recycleView);
            } 
 
            // Add new view to buffer 
            int newBufferIndex = mCurrentAdapterIndex - mSideBuffer;
            if (newBufferIndex > -1) {
                mLoadedViews.addFirst(makeAndAddView(newBufferIndex, false, recycleView));
                mCurrentBufferIndex++;
            } 
        } 
 
        requestLayout();
        setVisibleView(mCurrentBufferIndex, true);
        if (mIndicator != null) {
            mIndicator.onSwitched(mLoadedViews.get(mCurrentBufferIndex), mCurrentAdapterIndex);
        } 
        if (mViewSwitchListener != null) {
            mViewSwitchListener.onSwitched(mLoadedViews.get(mCurrentBufferIndex), mCurrentAdapterIndex);
        } 
        logBuffer(); 
    } 
 
    private View setupChild(View child, boolean addToEnd, boolean recycle) {
        ViewGroup.LayoutParams p = child.getLayoutParams();
        if (p == null) {
            p = new AbsListView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, 0);
        } 
        if (recycle)
            attachViewToParent(child, (addToEnd ? -1 : 0), p);
        else 
            addViewInLayout(child, (addToEnd ? -1 : 0), p, true);
        return child;
    } 
 
    private View makeAndAddView(int position, boolean addToEnd, View convertView) {
        View view = mAdapter.getView(position, convertView, this);
        return setupChild(view, addToEnd, convertView != null);
    } 
 
    class AdapterDataSetObserver extends DataSetObserver {