У меня есть просмотр списка, и я переопределяю для него событие onScroll, чтобы я мог получить первый символ текста в первом видимом элементе списка.Мой код выглядит следующим образом:
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
//
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
ListView caller = (ListView) view;
View v = caller.getChildAt(firstVisibleItem);
if(v instanceof TextView){
TextView tv = (TextView) v;
if(tv != null){
String sInitial = tv.getText().toString();
sInitial = Character.toString(sInitial.charAt(0));
TextView tvPager = (TextView) findViewById(R.id.tvPager);
tvPager.setText(sInitial);
}
}
}
Когда переменная FirstVisibleItem имеет значение от 0 до 12 (если быть точным), мой View v не является нулевым, и я могу получить его текст.Но когда он выходит за пределы 12, мой v уже нулевой.Мои элементы больше 12, поэтому они не должны быть нулевыми.
Что-то не так с моим кодом?Или есть лучший способ делать то, что я хочу?Заранее спасибо!