当我调用它时,Asynctask正在向我的Listview添加空项

时间:2012-11-27 13:12:49

标签: android

我正在使用pulltorefresh和scrollListener的概念。当我调用它时,我的AsyncTask类正在向listview添加一个空项。下面的代码显示了这个

     listView.setOnRefreshListener(new OnRefreshListener() {

//          @Override
            public void onRefresh() {
                // Your code to refresh the list contents goes here
//              listView.setAdapter(null);
                scroll=true;
                pic.clear();
                id.clear();
                name.clear();
                msg.clear();
                img.clear();
                profimg.clear();
                objid.clear();
                comment.clear();
                weburl.clear();
                adapter.clear();
                likes.clear();
                like_or_unlike.clear();
                 previousTotal = 0;
                 pulltorefresh=true;

//              listView.setAdapter(null);
//              scroll=true;
//              notifyDataSetChanged();
//              urlval=0;
                j=0;
                 loading = true;
                 boolAsync=false;
                webserv="https://graph.facebook.com/me/home?access_token="+accesstoken;
//               listView.removeFooterView(footerView);

                 doInBack dob=new doInBack();

                 dob.execute(); 
//                 listView.setAdapter(null);
//               doback(webserv);
                    Log.e("hi","doback called");
                    listView.setAdapter(null);


            }
        });

当我调用这个pulltorefresh时,我希望所有listview项都被删除,但它创建了一些空项,因为这样我的scrollListener被激活并且条件得到满足,尽管listview中没有可见项。

我的scrollListener类是

 public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) 
          {     

//      
              // TODO Auto-generated method stub

              if (loading) {
                  if (totalItemCount > previousTotal) {
                    Log.e("in loading","in load");
                      loading = false;
                      previousTotal = totalItemCount;
                  }
              } 
//                   int lastInScreen = firstVisibleItem + visibleItemCount; 
//              if(boolAsync){
//              if (!loading && (totalItemCount - visibleItemCount) ==(firstVisibleItem + threshold)){
                   if (!loading && (firstVisibleItem + visibleItemCount) >= totalItemCount){
//                    if(((firstVisibleItem + visibleItemCount) == totalItemCount)){
//                   if (!(loading)  &&(totalItemCount - visibleItemCount) ==(firstVisibleItem + threshold)) {
//                clearAllResources(); 
                       System.out.println(firstVisibleItem );
                       System.out.println(visibleItemCount );
                       System.out.println(totalItemCount);
                  scroll=false;
//                  if (!(loading)  &&(totalItemCount - visibleItemCount) == (firstVisibleItem + threshold)) {
                       Log.v("in gridview loading more","grid load");
//                      
                       doInBack dob=new doInBack();
                       dob.execute();  
//                       doback(webserv);
                    loading = true;
                   }
              }
//          }



      });

我也删除了我的页脚并尝试了,但我得到了(TotalItemcount为1,可见itemcount为1)。当我没有删除我的footerview时,我得到的totalItemcount为2.so.I刚刚删除了我的footerview但是我我仍然得到1作为TotalItemcount。

我认为这个AsyncTask只是将listview计数为1,当我在pulltorefresh中调用它时。

将非常感谢帮助。 提前致谢

0 个答案:

没有答案