/*
 * Copyright (C) 2008 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.widget;

Interface that may implemented on Adapters to enable fast scrolling between sections of an AbsListView.

A section is a group of list items that have something in common. For example, they may begin with the same letter or they may be songs from the same artist.

ExpandableListAdapters that consider groups and sections as synonymous should account for collapsed groups and return an appropriate section/position.

See Also:
/** * Interface that may implemented on {@link Adapter}s to enable fast scrolling * between sections of an {@link AbsListView}. * <p> * A section is a group of list items that have something in common. For * example, they may begin with the same letter or they may be songs from the * same artist. * <p> * {@link ExpandableListAdapter}s that consider groups and sections as * synonymous should account for collapsed groups and return an appropriate * section/position. * * @see AbsListView#setFastScrollEnabled(boolean) */
public interface SectionIndexer {
Returns an array of objects representing sections of the list. The returned array and its contents should be non-null.

The list view will call toString() on the objects to get the preview text to display while scrolling. For example, an adapter may return an array of Strings representing letters of the alphabet. Or, it may return an array of objects whose toString() methods return their section titles.

Returns:the array of section objects
/** * Returns an array of objects representing sections of the list. The * returned array and its contents should be non-null. * <p> * The list view will call toString() on the objects to get the preview text * to display while scrolling. For example, an adapter may return an array * of Strings representing letters of the alphabet. Or, it may return an * array of objects whose toString() methods return their section titles. * * @return the array of section objects */
Object[] getSections();
Given the index of a section within the array of section objects, returns the starting position of that section within the adapter.

If the section's starting position is outside of the adapter bounds, the position must be clipped to fall within the size of the adapter.

Params:
  • sectionIndex – the index of the section within the array of section objects
Returns:the starting position of that section within the adapter, constrained to fall within the adapter bounds
/** * Given the index of a section within the array of section objects, returns * the starting position of that section within the adapter. * <p> * If the section's starting position is outside of the adapter bounds, the * position must be clipped to fall within the size of the adapter. * * @param sectionIndex the index of the section within the array of section * objects * @return the starting position of that section within the adapter, * constrained to fall within the adapter bounds */
int getPositionForSection(int sectionIndex);
Given a position within the adapter, returns the index of the corresponding section within the array of section objects.

If the section index is outside of the section array bounds, the index must be clipped to fall within the size of the section array.

For example, consider an indexer where the section at array index 0 starts at adapter position 100. Calling this method with position 10, which is before the first section, must return index 0.

Params:
  • position – the position within the adapter for which to return the corresponding section index
Returns:the index of the corresponding section within the array of section objects, constrained to fall within the array bounds
/** * Given a position within the adapter, returns the index of the * corresponding section within the array of section objects. * <p> * If the section index is outside of the section array bounds, the index * must be clipped to fall within the size of the section array. * <p> * For example, consider an indexer where the section at array index 0 * starts at adapter position 100. Calling this method with position 10, * which is before the first section, must return index 0. * * @param position the position within the adapter for which to return the * corresponding section index * @return the index of the corresponding section within the array of * section objects, constrained to fall within the array bounds */
int getSectionForPosition(int position); }