Updated: 25 April 2013
Tested in:
HTC desire S (android 2.3.5), Samsung Galaxy Ace (android 2.3.4), Samsung Galaxy Tab P3100 (android 4.0.4)
Base on:
Eclipse Indigo build in 20120216-1857, Java 1.6, Android 4.1.2
Download Source code:
DemoIndexableListView20130425.rar
Description:
Find an item quickly by its first character in ListView.
Screen shot:
Tutorial:
1. Copy 2 files in package ...widget
IndexableListView.java
IndexScroller.java
2. Modify your adapter to implement android.widget.SectionIndexer
@Override
public int getPositionForSection(int section) {
for (int j = 0; j < getCount(); j++) {
if (section == 0) {
// For numeric section
for (int k = 0; k <= 9; k++) {
String text = null;
try {
text = mCurrentList.get(j);
} catch (Exception e) {
}
if (text == null)
return 0;
else if (String.valueOf(text.charAt(0)).toLowerCase().equals(String.valueOf(String.valueOf(k)).toString().toLowerCase()))
return j;
}
} else {
String artist = null;
try {
artist = mCurrentList.get(j);
} catch (Exception e) {
}
if (artist == null)
return 0;
else if (String.valueOf(artist.charAt(0)).toLowerCase().equals(String.valueOf(mSections.charAt(section)).toString().toLowerCase())) {
return j;
}
}
}
return 0;
}
@Override
public int getSectionForPosition(int position) {
return 0;
}
@Override
public Object[] getSections() {
String[] sections = new String[mSections.length()];
for (int i = 0; i < mSections.length(); i++)
sections[i] = String.valueOf(mSections.charAt(i));
return sections;
}
Nice Tutorial. But if i am using Checkbox on each listview item, then checkbox click is not working, if i am using Listview instead of Indexable listview , click events are working fine.
Please help me.
Can we use it in fragment ?