【发布时间】:2011-05-08 13:25:15
【问题描述】:
我有一个列表视图,并为它覆盖了 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 个,所以它不应该为空。
我的代码有问题吗?还是有更好的方法做我想做的事? 提前致谢!
【问题讨论】: