Некоторые элементы являются нулевыми в методе просмотра списка на Scroll - PullRequest
3 голосов
/ 11 ноября 2010

У меня есть просмотр списка, и я переопределяю для него событие 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, поэтому они не должны быть нулевыми.

Что-то не так с моим кодом?Или есть лучший способ делать то, что я хочу?Заранее спасибо!

1 Ответ

0 голосов
/ 11 ноября 2010

Вид списка Android перерабатывает «элементы» в списке, когда они не видны на экране. Поэтому все, что не видно, будет нулевым.

http://commonsware.com/Android/excerpt.pdf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...