我开发了一个Android应用程序,其中图像和文本显示在网格视图中,当用户向下滚动时,显示下十个项目(图像和文本).在adapter.notifyDataSetChanged()调用之后调用适配器的getView方法时出现问题.适配器回收数据,但位置重新排列并在网格视图中重复.直到我添加条件来检查convertView是否为null,我才遇到这个问题.
活动类:
public class DynamicListViewActivity extends Activity implements
OnScrollListener {
int visibleElements;
int scrollState;
int count;
TextAdapter adapter = new TextAdapter();
int total=200;// total items limit in grid view
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.grid);
count=10;
GridView grid = (GridView) findViewById(R.id.gridview);
grid.setAdapter(adapter);
grid.setOnScrollListener(this);
}
public void onScroll(AbsListView view, int firstVisible, int visibleCount,
int totalCount) {
visibleElements= visibleCount;
}
public void onScrollStateChanged(AbsListView v, int s) {
Log.d("ScrollState", s+"");
scrollState=s;
isScrollStateComplete();
}
public void isScrollStateComplete(){
if(visibleElements>0 && scrollState==SCROLL_STATE_IDLE && total>count){ …Run Code Online (Sandbox Code Playgroud)