int findCurrentSectionPosition(int fromPosition) { ListAdapter adapter = getAdapter(); if (fromPosition >= adapter.getCount()) return -1; // dataset has changed, no candidate if (adapter instanceof SectionIndexer) { // try fast way by asking section indexer SectionIndexer indexer = (SectionIndexer) adapter; int sectionPosition = indexer.getSectionForPosition(fromPosition); int itemPosition = indexer.getPositionForSection(sectionPosition); int typeView = adapter.getItemViewType(itemPosition); if (isItemViewTypePinned(adapter, typeView)) { return itemPosition; } // else, no luck } // try slow way by looking through to the next section item above for (int position=fromPosition; position>=0; position--) { int viewType = adapter.getItemViewType(position); if (isItemViewTypePinned(adapter, viewType)) return position; } return -1; // no candidate found }
@Override public int getPositionForSection(int section) { int position = 0; for (ListAdapter piece : getPieces()) { if (piece instanceof SectionIndexer) { Object[] sections = ((SectionIndexer) piece).getSections(); int numSections = 0; if (sections != null) { numSections = sections.length; } if (section < numSections) { return (position + ((SectionIndexer) piece).getPositionForSection(section)); } else if (sections != null) { section -= numSections; } } position += piece.getCount(); } return (0); }
@Override public Object[] getSections() { ArrayList<Object> sections = new ArrayList<Object>(); for (ListAdapter piece : getPieces()) { if (piece instanceof SectionIndexer) { Object[] curSections = ((SectionIndexer) piece).getSections(); if (curSections != null) { Collections.addAll(sections, curSections); } } } if (sections.size() == 0) { return (new String[0]); } return (sections.toArray(new Object[0])); }
private int findCurrentSectionPosition(int fromPosition) { PinnedSectionListAdapter adapter = (PinnedSectionListAdapter) getAdapter(); if (adapter instanceof SectionIndexer) { SectionIndexer indexer = (SectionIndexer) adapter; int itemPosition = indexer.getPositionForSection(indexer.getSectionForPosition (fromPosition)); if (adapter.isItemViewTypePinned(adapter.getItemViewType(itemPosition))) { return itemPosition; } } for (int position = fromPosition; position >= 0; position--) { if (adapter.isItemViewTypePinned(adapter.getItemViewType(position))) { return position; } } return -1; }
int findCurrentSectionPosition(int fromPosition) { ListAdapter adapter = getAdapter(); if (adapter instanceof SectionIndexer) { // try fast way by asking section indexer SectionIndexer indexer = (SectionIndexer) adapter; int sectionPosition = indexer.getSectionForPosition(fromPosition); int itemPosition = indexer.getPositionForSection(sectionPosition); int typeView = adapter.getItemViewType(itemPosition); if (isItemViewTypePinned(adapter, typeView)) { return itemPosition; } // else, no luck } // try slow way by looking through to the next section item above for (int position = fromPosition; position >= 0; position--) { int viewType = adapter.getItemViewType(position); if (isItemViewTypePinned(adapter, viewType)) return position; } return -1; // no candidate found }
public int getPositionForSection(int section) { int position = 0; for (ListAdapter piece : pieces) { if (piece instanceof SectionIndexer) { Object[] sections = ((SectionIndexer) piece).getSections(); int numSections = 0; if (sections != null) { numSections = sections.length; } if (section < numSections) { return (position + ((SectionIndexer) piece) .getPositionForSection(section)); } else if (sections != null) { section -= numSections; } } position += piece.getCount(); } return (0); }
public Object[] getSections() { ArrayList<Object> sections = new ArrayList<>(); for (ListAdapter piece : pieces) { if (piece instanceof SectionIndexer) { Object[] curSections = ((SectionIndexer) piece).getSections(); if (curSections != null) { Collections.addAll(sections, curSections); } } } if (sections.size() == 0) { return (null); } return (sections.toArray(new Object[sections.size()])); }
public int getPositionForSection(int section) { int position = 0; ListAdapter piece; for (Iterator i$ = this.getPieces().iterator(); i$.hasNext(); position += piece.getCount()) { piece = (ListAdapter) i$.next(); if (piece instanceof SectionIndexer) { Object[] sections = ((SectionIndexer) piece).getSections(); int numSections = 0; if (sections != null) { numSections = sections.length; } if (section < numSections) { return position + ((SectionIndexer) piece).getPositionForSection(section); } if (sections != null) { section -= numSections; } } } return 0; }
public int getSectionForPosition(int position) { int section = 0; int size; for (Iterator i$ = this.getPieces().iterator(); i$.hasNext(); position -= size) { ListAdapter piece = (ListAdapter) i$.next(); size = piece.getCount(); if (position < size) { if (piece instanceof SectionIndexer) { return section + ((SectionIndexer) piece).getSectionForPosition(position); } return 0; } if (piece instanceof SectionIndexer) { Object[] sections = ((SectionIndexer) piece).getSections(); if (sections != null) { section += sections.length; } } } return 0; }
public Object[] getSections() { ArrayList sections = new ArrayList(); Iterator i$ = this.getPieces().iterator(); while (i$.hasNext()) { ListAdapter piece = (ListAdapter) i$.next(); if (piece instanceof SectionIndexer) { Object[] curSections = ((SectionIndexer) piece).getSections(); if (curSections != null) { Collections.addAll(sections, curSections); } } } if (sections.size() == 0) { return new String[0]; } else { return sections.toArray(new Object[sections.size()]); } }
int findCurrentSectionPosition(int fromPosition) { ListAdapter adapter = getAdapter(); if (adapter instanceof SectionIndexer) { // try fast way by asking section indexer SectionIndexer indexer = (SectionIndexer) adapter; int sectionPosition = indexer.getSectionForPosition(fromPosition); int itemPosition = indexer.getPositionForSection(sectionPosition); int typeView = adapter.getItemViewType(itemPosition); if (isItemViewTypePinned(adapter, typeView)) { return itemPosition; } // else, no luck } // try slow way by looking through to the next section item above for (int position=Math.min(fromPosition,adapter.getCount()-1); position>=0; position--) { int viewType = adapter.getItemViewType(position); if (isItemViewTypePinned(adapter, viewType)) return position; } return -1; // no candidate found }
int findCurrentSectionPosition(int fromPosition) { ListAdapter adapter = getAdapter(); if (fromPosition >= adapter.getCount()) return -1; // dataset has changed, no candidate if (adapter instanceof SectionIndexer) { // try fast way by asking section indexer SectionIndexer indexer = (SectionIndexer) adapter; int sectionPosition = indexer.getSectionForPosition(fromPosition); int itemPosition = indexer.getPositionForSection(sectionPosition); int typeView = adapter.getItemViewType(itemPosition); if (isItemViewTypePinned(adapter, typeView)) { return itemPosition; } // else, no luck } // try slow way by looking through to the next section item above for (int position = fromPosition; position >= 0; position--) { int viewType = adapter.getItemViewType(position); if (isItemViewTypePinned(adapter, viewType)) return position; } return -1; // no candidate found }
int findCurrentSectionPosition(int fromPosition) { ListAdapter adapter = getAdapter(); if (adapter instanceof SectionIndexer) { // try fast way by asking section indexer SectionIndexer indexer = (SectionIndexer) adapter; int sectionPosition = indexer.getSectionForPosition(fromPosition); int itemPosition = indexer.getPositionForSection(sectionPosition); int typeView = adapter.getItemViewType(itemPosition); if (isItemViewTypePinned(adapter, typeView)) { return itemPosition; } // else, no luck } // try slow way by looking through to the next section item above for (int position=fromPosition; position>=0; position--) { int viewType = adapter.getItemViewType(position); if (isItemViewTypePinned(adapter, viewType)) return position; } return -1; // no candidate found }
@Override public int getPositionForSection(int section) { int position=0; for (ListAdapter piece : getPieces()) { if (piece instanceof SectionIndexer) { Object[] sections=((SectionIndexer)piece).getSections(); int numSections=0; if (sections != null) { numSections=sections.length; } if (section < numSections) { return(position + ((SectionIndexer)piece).getPositionForSection(section)); } else if (sections != null) { section-=numSections; } } position+=piece.getCount(); } return(0); }
@Override public Object[] getSections() { ArrayList<Object> sections=new ArrayList<Object>(); for (ListAdapter piece : getPieces()) { if (piece instanceof SectionIndexer) { Object[] curSections=((SectionIndexer)piece).getSections(); if (curSections != null) { Collections.addAll(sections, curSections); } } } if (sections.size() == 0) { return(new String[0]); } return(sections.toArray(new Object[0])); }
@Override protected void onFinishInflate() { super.onFinishInflate(); int count = getChildCount(); if (count < 1) { throw new IllegalArgumentException("this layout must contain 1 child views,and AdapterView must in the first position!"); } View view = this.getChildAt(0); AdapterView<?> adapterView = null; if (view instanceof AdapterView<?>) { adapterView = (AdapterView<?>) view; listView = (ListView)adapterView; sectionIndexter = (SectionIndexer) listView.getAdapter(); letterView = new LetterView(context); letterView.setListView(listView); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(60, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,RelativeLayout.TRUE); layoutParams.topMargin=10; layoutParams.rightMargin=10; layoutParams.bottomMargin=10; this.addView(letterView,layoutParams); } if (adapterView == null) { throw new IllegalArgumentException("must contain a AdapterView in this layout!"); } }
final void d() { ListAdapter localListAdapter = (ListAdapter)this.f.getAdapter(); this.C = null; if ((localListAdapter instanceof HeaderViewListAdapter)) { this.w = ((HeaderViewListAdapter)localListAdapter).getHeadersCount(); localListAdapter = ((HeaderViewListAdapter)localListAdapter).getWrappedAdapter(); } this.B = localListAdapter; if ((localListAdapter instanceof SectionIndexer)) { this.C = ((SectionIndexer)localListAdapter); this.z = this.C.getSections(); return; } this.z = new String[] { " " }; }
int findCurrentSectionPosition(int fromPosition) { PinnedSectionGridAdapter adapter = getPinnedAdapter(); if (adapter instanceof SectionIndexer) { // try fast way by asking section indexer SectionIndexer indexer = (SectionIndexer) adapter; int sectionPosition = indexer.getSectionForPosition(fromPosition); int itemPosition = indexer.getPositionForSection(sectionPosition); //int typeView = adapter.getItemViewType(itemPosition); if (isItemViewTypePinned(adapter, itemPosition)) { return itemPosition; } // else, no luck } // try slow way by looking through to the next section item above for (int position = fromPosition; position >= 0; position--) { //int viewType = adapter.getItemViewType(position); if (isItemViewTypePinned(adapter, position)) return position; } return -1; // no candidate found }
int findCurrentSectionPosition(int fromPosition) { PinnedSectionListAdapter adapter = getPinnedAdapter(); if (adapter instanceof SectionIndexer) { // try fast way by asking section indexer SectionIndexer indexer = (SectionIndexer) adapter; int sectionPosition = indexer.getSectionForPosition(fromPosition); int itemPosition = indexer.getPositionForSection(sectionPosition); //int typeView = adapter.getItemViewType(itemPosition); if (isItemViewTypePinned(adapter, itemPosition)) { return itemPosition; } // else, no luck } // try slow way by looking through to the next section item above for (int position = fromPosition; position >= 0; position--) { //int viewType = adapter.getItemViewType(position); if (isItemViewTypePinned(adapter, position)) return position; } return -1; // no candidate found }
private AdapterWrapper wrapAdapter(ListAdapter adapter) { AdapterWrapper wrapper; if (adapter instanceof SectionIndexer) { wrapper = new SectionIndexerAdapterWrapper(getContext(), (StickyHeadersAdapter) adapter); } else { wrapper = new AdapterWrapper(getContext(), (StickyHeadersAdapter) adapter); } wrapper.setDivider(mDivider); wrapper.setDividerHeight(mDividerHeight); wrapper.registerDataSetObserver(mDataSetChangedObserver); wrapper.setOnHeaderClickListener(mAdapterHeaderClickListener); return wrapper; }
public final int getPositionForSection(int section) { int position = 0; for (ListAdapter piece : pieces) { if (piece instanceof SectionIndexer) { Object[] sections = ((SectionIndexer) piece).getSections(); int numSections = 0; if (sections != null) { numSections = sections.length; } if (section < numSections) { return (position + ((SectionIndexer) piece).getPositionForSection(section)); } else if (sections != null) { section -= numSections; } } position += piece.getCount(); } return (0); }
public final Object[] getSections() { ArrayList<Object> sections = new ArrayList<Object>(); for (ListAdapter piece : pieces) { if (piece instanceof SectionIndexer) { Object[] curSections = ((SectionIndexer) piece).getSections(); if (curSections != null) { for (Object section : curSections) { sections.add(section); } } } } if (sections.size() == 0) { return (null); } return (sections.toArray(new Object[0])); }
int findCurrentSectionPosition(int fromPosition) { ListAdapter adapter = getAdapter(); if (adapter instanceof SectionIndexer) { // try fast way by asking section indexer SectionIndexer indexer = (SectionIndexer) adapter; int sectionPosition = indexer.getSectionForPosition(fromPosition); int itemPosition = indexer.getPositionForSection(sectionPosition); int typeView = adapter.getItemViewType(itemPosition); if (isItemViewTypePinned(adapter, typeView)) { return itemPosition; } // else, no luck } // try slow way by looking through to the next section item above for (int position=fromPosition; position>=0; position--) { if(position >= adapter.getCount())break;//fix by bitjjj int viewType = adapter.getItemViewType(position); if (isItemViewTypePinned(adapter, viewType)) return position; } return -1; // no candidate found }
public int getPositionForSection(int section) { int position = 0; for (ListAdapter piece : pieces) { if (piece instanceof SectionIndexer) { Object[] sections = ((SectionIndexer) piece).getSections(); int numSections = 0; if (sections != null) { numSections = sections.length; } if (section < numSections) { return (position + ((SectionIndexer) piece) .getPositionForSection(section)); } else if (sections != null) { section -= numSections; } } position += piece.getCount(); } return 0; }
public Object[] getSections() { ArrayList<Object> sections = new ArrayList<>(); for (ListAdapter piece : pieces) { if (piece instanceof SectionIndexer) { Object[] curSections = ((SectionIndexer) piece).getSections(); if (curSections != null) { Collections.addAll(sections, curSections); } } } if (sections.isEmpty()) { return null; } return sections.toArray(new Object[sections.size()]); }
@Override public int getPositionForSection(int section) { int position=0; for (ListAdapter piece : pieces) { if (piece instanceof SectionIndexer) { Object[] sections=((SectionIndexer)piece).getSections(); int numSections=0; if (sections!=null) { numSections=sections.length; } if (section<numSections) { return(position+((SectionIndexer)piece).getPositionForSection(section)); } else if (sections!=null) { section-=numSections; } } position+=piece.getCount(); } return(0); }