0
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
        int visibleItemCount, int totalItemCount) {
    // TODO Auto-generated method stub
    Toast.makeText(ViewPage.this, "In" , 1).show();
     if (loading) 
     {
         if (totalItemCount > previousTotal) 
         {
            loading = false;
            previousTotal = totalItemCount;
            currentPage++;
         }
     }
     if (!loading && (totalItemCount - visibleItemCount) <= (firstVisibleItem + visibleThreshold)) 
     { 


            for(int i=0;i<5;i++)
            {
                filename[i] = contactcursor.getString(contact_column_index);
                Toast.makeText(ViewPage.this, filename[i] +" "+ contactcursor.getString(contact_column_index) , 1).show();
                contactcursor.moveToNext();

            }


            arr_ad = new ArrayAdapter<String>(ViewPage.this, android.R.layout.simple_list_item_1, filename);


            setListAdapter(arr_ad);
            // I load the next page of gigs using a background task,
            // but you can call any function here.
           // new LoadGigsTask().execute(currentPage + 1);
            loading = true;
            Toast.makeText(ViewPage.this,totalItemCount+" "+visibleItemCount+" "+firstVisibleItem+" "+visibleThreshold+" ", 1).show();
     }
}

这是代码的一部分,其中 onScroll 应该只在 listview 向下滚动时才起作用,但是当活动开始时它会自动工作,因为其中的 toast 被打印出来。提前谢谢。

4

1 回答 1

1

首先,您不需要在 onScroll 中添加 toast,因为这不是一个好主意。而是使用Log.

其次,它会自动调用,因为 Listview 需要在里面填充项目。因此,当 ListView 第一次插入项目时,滚动元素也被更改/更新,导致 onScroll 发生(我猜)。一旦插入所需数量的项目以填充屏幕上可见的 Listview,我认为它不会引发 onScroll。所以这不是一个大问题。

于 2012-04-25T08:44:25.890 回答