<IndexBar 부분>
private void init() {
l = new char[]{
'ㄱ','ㄴ','ㄷ','ㄹ','ㅁ','ㅂ','ㅅ','ㅇ','ㅈ','ㅊ','ㅋ','ㅌ','ㅍ','ㅎ','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
};//index에 표시될 문자들.
setBackgroundColor(0x44FFFFFF);
}
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
int size = getMeasuredHeight()/(l.length+1);
int i = (int)event.getY();
int idx = i/size;
if(idx >= l.length){
idx = l.length-1;
}else if(idx < 0){
idx = 0;
}
if(event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE){
if(sectionIndexter == null){
sectionIndexter = (SectionIndexer) list.getAdapter();
}
int position = sectionIndexter.getPositionForSection(l[idx]);
if(position == -1){
return true;
}
list.setSelection(position);
}
return true;
} |