有两种方法:

我在项目中用了两种方法,来进行listView的分页,分别是用Handler和AsyncTask。

 

第一种方法:用Handler和线程

 

看代码:

Java代码  收藏代码
  1. package com.cnjmwl.scm.salesorder;  
  2. import java.util.ArrayList;  
  3. import com.cnjmwl.scm.MainActivity;  
  4. import com.cnjmwl.scm.R;  
  5. import com.cnjmwl.util.HttpUtil;  
  6. import com.cnjmwl.util.ReadXML;  
  7. import com.cnjmwl.util.StringUtil;  
  8. import android.app.Activity;  
  9. import android.content.Intent;  
  10. import android.os.Bundle;  
  11. import android.os.Handler;  
  12. import android.os.Message;  
  13. import android.util.Log;  
  14. import android.view.Gravity;  
  15. import android.view.LayoutInflater;  
  16. import android.view.Menu;  
  17. import android.view.MenuItem;  
  18. import android.view.View;  
  19. import android.view.ViewGroup;  
  20. import android.widget.AbsListView;  
  21. import android.widget.BaseAdapter;  
  22. import android.widget.Button;  
  23. import android.widget.GridView;  
  24. import android.widget.LinearLayout;  
  25. import android.widget.ListView;  
  26. import android.widget.ProgressBar;  
  27. import android.widget.Spinner;  
  28. import android.widget.Toast;  
  29.   
  30. import android.widget.TextView;  
  31. import android.widget.AbsListView.OnScrollListener;  
  32. import android.widget.LinearLayout.LayoutParams;  
  33.   
  34.   
  35. import com.cnjmwl.scm.entity.*;  
  36. public class SalesOrderActivity extends Activity implements OnScrollListener{  
  37.     private ListView mListView;  
  38.     private MyAdapter mMyAdapter;  
  39.     LinearLayout loadingLayout;  
  40.     private Thread mThread;  
  41.   
  42.      /** 
  43.      * 设置布局显示属性 
  44.      */  
  45.     private LayoutParams mLayoutParams = new LinearLayout.LayoutParams(  
  46.             LinearLayout.LayoutParams.WRAP_CONTENT,  
  47.             LinearLayout.LayoutParams.WRAP_CONTENT);  
  48.     /** 
  49.      * 设置布局显示目标最大化属性 
  50.      */  
  51.     private LayoutParams FFlayoutParams = new LinearLayout.LayoutParams(  
  52.             LinearLayout.LayoutParams.FILL_PARENT,  
  53.             LinearLayout.LayoutParams.FILL_PARENT);  
  54.   
  55.     private ProgressBar progressBar;  
  56.       
  57.       
  58.       
  59.      /** 
  60.       * 报检属性名称 
  61.       */  
  62.     String[] strID,strUnit,strStatus,strStatusDesc,strNO,strDate,strLinkMan,strLinkTel,business;  
  63.     int maxCount;//数据库中的订单总数  
  64.       
  65.     ArrayList<SalesOrder> lists;  
  66.     View.OnClickListener cl;  
  67.       @Override  
  68.     protected void onCreate(Bundle savedInstanceState) {  
  69.           
  70.         super.onCreate(savedInstanceState);  
  71.         setContentView(R.layout.order_main);  
  72.          setupViews();  
  73.            
  74.            
  75.        
  76.     }  
  77.       public void setupViews(){  
  78.           if(maxCount==0){  
  79.               addDeclaration();  
  80.           }  
  81.             
  82.            
  83.           //线性布局  
  84.           LinearLayout layout=new LinearLayout(this);  
  85.           //设置布局水平方向  
  86.           layout.setOrientation(LinearLayout.HORIZONTAL);  
  87.           //进度条  
  88.           progressBar=new ProgressBar(this);  
  89.           //把进度条加入到layout中  
  90.           layout.addView(progressBar,mLayoutParams);  
  91.           //文本内容  
  92.           TextView textView=new TextView(this);  
  93.           textView.setText("加载中...");  
  94.           textView.setGravity(Gravity.CENTER_VERTICAL);  
  95.           //把文本加入到layout中  
  96.           layout.addView(textView,FFlayoutParams);  
  97.           //设置layout的重力方向,即对齐方式是  
  98.           layout.setGravity(Gravity.CENTER);  
  99.           //设置ListView的页脚layout  
  100.           loadingLayout = new LinearLayout(this);  
  101.           loadingLayout.addView(layout,mLayoutParams);  
  102.           loadingLayout.setGravity(Gravity.CENTER);  
  103.             
  104.           //得到一个ListView用来显示条目  
  105.           mListView=(ListView)findViewById(R.id.listview);  
  106.             
  107.           //添加到页脚  
  108.           mListView.addFooterView(loadingLayout);     
  109.             mMyAdapter=new MyAdapter();  
  110.             mListView.setAdapter(mMyAdapter);  
  111.             mListView.setOnScrollListener(this);  
  112.             mListView.setTextFilterEnabled(true);  
  113.             mListView.setBackgroundResource(R.drawable.background);       
  114.               
  115.               
  116.         }  
  117.       
  118.      /** 
  119.          * 向服务器请求待办列表 
  120.          */  
  121.         private String queryList(String uri){  
  122.              String url = HttpUtil.BASE_URL+uri;  
  123.             System.out.println(url);  
  124.            return HttpUtil.getHTTPUtil().queryStringForPost(url);  
  125.          }  
  126.           
  127.      public void addDeclaration(){  
  128.          String result2=queryList("orderStatusList".trim());  
  129.           lists=ReadXML.readXML(result2).getInspection2();  
  130.           Log.v("result2--", result2);  
  131.           strID=new String[lists.size()];  
  132.           strNO=new String[lists.size()];  
  133.           strStatus=new String[lists.size()];  
  134.           strStatusDesc=new String[lists.size()];  
  135.           strUnit=new String[lists.size()];  
  136.           strDate=new String[lists.size()];  
  137.           strLinkMan=new String[lists.size()];  
  138.           strLinkTel=new String[lists.size()];  
  139.           business=new String[lists.size()];  
  140.           int i2=0;  
  141.         for(SalesOrder in:lists){  
  142.           strID[i2]=in.getId();        
  143.           strStatus[i2]=in.getStatus();  
  144.           strDate[i2]=in.getDate();  
  145.           strLinkTel[i2]=in.getLinkTel();  
  146.            
  147.           //business[i2]=business[i2].replace("@", "\n");  
  148.            
  149.           if(in.getStatusDesc()!=null&&!in.getStatusDesc().equals("")){  
  150.               strStatusDesc[i2]=StringUtil.unicodeToUtf8(in.getStatusDesc());  
  151.           }else {  
  152.                  strStatusDesc[i2]="";  
  153.               }  
  154.           if(in.getUnit()!=null&&!in.getUnit().equals("")){  
  155.               strUnit[i2]=StringUtil.unicodeToUtf8(in.getUnit());  
  156.           }else {  
  157.               strUnit[i2]="";  
  158.               }  
  159.           if(in.getLinkMan()!=null&&!in.getLinkMan().equals("")){  
  160.               strLinkMan[i2]=StringUtil.unicodeToUtf8(in.getLinkMan());  
  161.           }else {  
  162.               strLinkMan[i2]="";  
  163.               }  
  164.           if(in.getBusinessItems()!=null&& !in.getBusinessItems().equals("")){  
  165.              business[i2]=StringUtil.unicodeToUtf8(in.getBusinessItems());  
  166.              business[i2]=business[i2].replace("||""\n");  
  167.           }else {  
  168.             business[i2]="";  
  169.         }  
  170.           
  171.         //business[i2]=business[i2].replace("|", "\n");  
  172.          Log.v("business", business[i2]);  
  173.           strNO[i2]=in.getNo();  
  174.           i2++;  
  175.         }  
  176.         maxCount=strID.length;  
  177.      }  
  178.        
  179.        
  180.        
  181.      /** 
  182.       * 创建菜单 
  183.       *  
  184.       */  
  185.        
  186.        @Override  
  187.     public boolean onCreateOptionsMenu(Menu menu) {  
  188.            menu.add(Menu.NONE, Menu.FIRST+15"返回首页").setIcon(android.R.drawable.ic_menu_delete);  
  189.            menu.add(Menu.NONE, Menu.FIRST+22"退出").setIcon(android.R.drawable.ic_menu_edit);  
  190.          // this.getMenuInflater().inflate(R.menu.options_menu, menu);  
  191.         return true;  
  192.     }  
  193.          
  194.          
  195.      //菜单项被选择事件  
  196.        @Override  
  197.        public boolean onOptionsItemSelected(MenuItem item) {  
  198.            switch (item.getItemId()) {  
  199.            case Menu.FIRST + 1:  
  200.               Intent intent=new Intent(Copy_4_of_SalesOrderActivity.this,MainActivity.class);  
  201.               startActivity(intent);  
  202.                break;  
  203.            case Menu.FIRST + 2:  
  204.                Intent startMain = new Intent(Intent.ACTION_MAIN);  
  205.                  startMain.addCategory(Intent.CATEGORY_HOME);  
  206.                  startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  207.                  startActivity(startMain);  
  208.                  System.exit(0);  
  209.                break;  
  210.              
  211.            }  
  212.            return false;  
  213.        }  
  214.          
  215.          
  216.     
  217.        //定义自己的适配器,注意getCount和getView方法  
  218.        private class MyAdapter extends BaseAdapter{  
  219.            int count = 10 ;  
  220.             
  221.         @Override  
  222.         public int getCount() {  
  223.             return count;  
  224.         }  
  225.   
  226.         @Override  
  227.         public Object getItem(int position) {  
  228.             return position;  
  229.    
  230.         }  
  231.   
  232.         @Override  
  233.         public long getItemId(int position) {  
  234.               
  235.             return position;  
  236.         }  
  237.   
  238.         @Override  
  239.         public View getView(int position, View convertView, ViewGroup parent) {  
  240.            convertView=LayoutInflater.from(getApplicationContext()).inflate(R.layout.list_data, null);      
  241.            TextView noTextView=(TextView)convertView.findViewById(R.id.ItemNO);  
  242.            noTextView.setText(strNO[position]);      
  243.           TextView LinkManTextView=(TextView)convertView.findViewById(R.id.ItemLinkMan);  
  244.             LinkManTextView.setText(strLinkMan[position]);    
  245.              TextView LinkTelTextView=(TextView)convertView.findViewById(R.id.ItemLinkTel);  
  246.             LinkTelTextView.setText(strLinkTel[position]);    
  247.              TextView busTextView=(TextView)convertView.findViewById(R.id.Itembusiness1);  
  248.             busTextView.setText(business[position]);  
  249.            return convertView;  
  250.        }  
  251.    }  
  252.         
  253.         
  254.     @Override  
  255.     public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {  
  256.             if(firstVisibleItem + visibleItemCount == totalItemCount){  
  257.                 //开远程去下载网络数据  
  258.                 if(mThread == null || ! mThread.isAlive()){  
  259.                     mThread = new Thread(){  
  260.                         @Override  
  261.                         public void run() {  
  262.                             try {  
  263.                                 //这里写网络数据请求的方法  
  264.                                 if(maxCount==0){  
  265.                                     addDeclaration();  
  266.                                 }  
  267.                                   
  268.                             } catch (Exception e) {  
  269.                                 e.printStackTrace();  
  270.                             }  
  271.                               
  272.                             Message message = new Message();  
  273.                             message.what = 1;  
  274.                             handler.sendMessage(message);  
  275.                         }  
  276.                     };  
  277.                     mThread.run();  
  278.                 }else {  
  279.                       
  280.                     mThread.destroy();  
  281.                 }  
  282.             }  
  283.           
  284.     }  
  285.     @Override  
  286.     public void onScrollStateChanged(AbsListView view, int scrollState) {  
  287.              
  288.           
  289.     }     
  290.   
  291.       
  292.     private Handler handler = new Handler(){  
  293.         @Override  
  294.         public void handleMessage(Message msg) {  
  295.             switch (msg.what) {  
  296.             case 1:  
  297.                 Log.v("mMyAdapter.count", mMyAdapter.count+"");  
  298.                 if(mMyAdapter.count < maxCount){  
  299.                       
  300.                     if((maxCount - mMyAdapter.count) >10){  
  301.                         mMyAdapter.count+=10;  
  302.                     }else {  
  303.                         mMyAdapter.count+= maxCount -mMyAdapter.count;  
  304.                     }  
  305.                       
  306.                     int currentPage = mMyAdapter.count / 10;  
  307.                     //Toast.makeText(getApplicationContext(), "第"+currentPage +"页",Toast.LENGTH_LONG).show();  
  308.                 }else {  
  309.                       
  310.                     mListView.removeFooterView(loadingLayout);  
  311.                     mThread.stop();  
  312.                 }  
  313.                 //重新刷新ListView的adapter里面数据  
  314.                 mMyAdapter.notifyDataSetChanged();  
  315.                 break;  
  316.   
  317.             default:  
  318.                 break;  
  319.             }  
  320.         }  
  321.     };  
  322.          
  323. }  

 第二种:AsyncTask

Java代码  收藏代码
  1. package com.cnjmwl.scm.salesorder;  
  2. /** 
  3.  * 使用AsyncTask进行分页 
  4.  */  
  5. import java.util.ArrayList;  
  6.   
  7.   
  8. import com.cnjmwl.scm.MainActivity;  
  9. import com.cnjmwl.scm.R;  
  10.   
  11. import com.cnjmwl.util.HttpUtil;  
  12. import com.cnjmwl.util.ReadXML;  
  13. import com.cnjmwl.util.StringUtil;  
  14.   
  15. import android.app.Activity;  
  16.   
  17. import android.content.Intent;  
  18. import android.os.AsyncTask;  
  19. import android.os.Bundle;  
  20. import android.os.Handler;  
  21. import android.os.Message;  
  22. import android.util.Log;  
  23. import android.view.Gravity;  
  24. import android.view.LayoutInflater;  
  25. import android.view.Menu;  
  26. import android.view.MenuItem;  
  27. import android.view.View;  
  28. import android.view.ViewGroup;  
  29. import android.widget.AbsListView;  
  30. import android.widget.BaseAdapter;  
  31. import android.widget.Button;  
  32. import android.widget.GridView;  
  33. import android.widget.LinearLayout;  
  34. import android.widget.ListView;  
  35. import android.widget.ProgressBar;  
  36. import android.widget.Spinner;  
  37. import android.widget.Toast;  
  38.   
  39. import android.widget.TextView;  
  40. import android.widget.AbsListView.OnScrollListener;  
  41. import android.widget.LinearLayout.LayoutParams;  
  42.   
  43.   
  44. import com.cnjmwl.scm.entity.*;  
  45. public class SalesOrderActivity extends Activity implements OnScrollListener{  
  46.     private ListView mListView;  
  47.     private MyAdapter mMyAdapter;  
  48.     LinearLayout loadingLayout;  
  49.     private int lastItem=0;  
  50.      /** 
  51.      * 设置布局显示属性 
  52.      */  
  53.     private LayoutParams mLayoutParams = new LinearLayout.LayoutParams(  
  54.             LinearLayout.LayoutParams.WRAP_CONTENT,  
  55.             LinearLayout.LayoutParams.WRAP_CONTENT);  
  56.     /** 
  57.      * 设置布局显示目标最大化属性 
  58.      */  
  59.     private LayoutParams FFlayoutParams = new LinearLayout.LayoutParams(  
  60.             LinearLayout.LayoutParams.FILL_PARENT,  
  61.             LinearLayout.LayoutParams.FILL_PARENT);  
  62.   
  63.     private ProgressBar progressBar;  
  64.     private boolean isLoading;  
  65.       
  66.       
  67.      /** 
  68.       * 报检属性名称 
  69.       */  
  70.     String[] strID,strUnit,strStatus,strStatusDesc,strNO,strDate,strLinkMan,strLinkTel,business;  
  71.     int maxCount;//数据库中的订单总数  
  72.       
  73.     ArrayList<SalesOrder> lists;  
  74.     View.OnClickListener cl;  
  75.       @Override  
  76.     protected void onCreate(Bundle savedInstanceState) {  
  77.           
  78.         super.onCreate(savedInstanceState);  
  79.         setContentView(R.layout.order_main);  
  80.          setupViews();  
  81.   
  82.     }  
  83.       public void setupViews(){  
  84.           if(maxCount==0){  
  85.               addDeclaration();  
  86.           }  
  87.             
  88.            
  89.           //线性布局  
  90.           LinearLayout layout=new LinearLayout(this);  
  91.           //设置布局水平方向  
  92.           layout.setOrientation(LinearLayout.HORIZONTAL);  
  93.           //进度条  
  94.           progressBar=new ProgressBar(this);  
  95.           //把进度条加入到layout中  
  96.           layout.addView(progressBar,mLayoutParams);  
  97.           //文本内容  
  98.           TextView textView=new TextView(this);  
  99.           textView.setText("加载中...");  
  100.           textView.setGravity(Gravity.CENTER_VERTICAL);  
  101.           //把文本加入到layout中  
  102.           layout.addView(textView,FFlayoutParams);  
  103.           //设置layout的重力方向,即对齐方式是  
  104.           layout.setGravity(Gravity.CENTER);  
  105.           //设置ListView的页脚layout  
  106.           loadingLayout = new LinearLayout(this);  
  107.           loadingLayout.addView(layout,mLayoutParams);  
  108.           loadingLayout.setGravity(Gravity.CENTER);  
  109.             
  110.           //得到一个ListView用来显示条目  
  111.           mListView=(ListView)findViewById(R.id.listview);  
  112.             
  113.           //添加到页脚  
  114.           mListView.addFooterView(loadingLayout);     
  115.             mMyAdapter=new MyAdapter();  
  116.             mListView.setAdapter(mMyAdapter);  
  117.             mListView.setOnScrollListener(this);  
  118.             mListView.setTextFilterEnabled(true);  
  119.             mListView.setBackgroundResource(R.drawable.background);       
  120.               
  121.               
  122.         }  
  123.       
  124.      /** 
  125.          * 向服务器请求待办列表 
  126.          */  
  127.         private String queryList(String uri){  
  128.              String url = HttpUtil.BASE_URL+uri;  
  129.             System.out.println(url);  
  130.            return HttpUtil.getHTTPUtil().queryStringForPost(url);  
  131.          }  
  132.           
  133.      public void addDeclaration(){  
  134.          String result2=queryList("orderStatusList".trim());  
  135.           lists=ReadXML.readXML(result2).getInspection2();  
  136.           Log.v("result2--", result2);  
  137.           strID=new String[lists.size()];  
  138.           strNO=new String[lists.size()];  
  139.           strStatus=new String[lists.size()];  
  140.           strStatusDesc=new String[lists.size()];  
  141.           strUnit=new String[lists.size()];  
  142.           strDate=new String[lists.size()];  
  143.           strLinkMan=new String[lists.size()];  
  144.           strLinkTel=new String[lists.size()];  
  145.           business=new String[lists.size()];  
  146.           int i2=0;  
  147.         for(SalesOrder in:lists){  
  148.           strID[i2]=in.getId();        
  149.           strStatus[i2]=in.getStatus();  
  150.           strDate[i2]=in.getDate();  
  151.           strLinkTel[i2]=in.getLinkTel();  
  152.            
  153.           //business[i2]=business[i2].replace("@", "\n");  
  154.            
  155.           if(in.getStatusDesc()!=null&&!in.getStatusDesc().equals("")){  
  156.               strStatusDesc[i2]=StringUtil.unicodeToUtf8(in.getStatusDesc());  
  157.           }else {  
  158.                  strStatusDesc[i2]="";  
  159.               }  
  160.           if(in.getUnit()!=null&&!in.getUnit().equals("")){  
  161.               strUnit[i2]=StringUtil.unicodeToUtf8(in.getUnit());  
  162.           }else {  
  163.               strUnit[i2]="";  
  164.               }  
  165.           if(in.getLinkMan()!=null&&!in.getLinkMan().equals("")){  
  166.               strLinkMan[i2]=StringUtil.unicodeToUtf8(in.getLinkMan());  
  167.           }else {  
  168.               strLinkMan[i2]="";  
  169.               }  
  170.           if(in.getBusinessItems()!=null&& !in.getBusinessItems().equals("")){  
  171.              business[i2]=StringUtil.unicodeToUtf8(in.getBusinessItems());  
  172.              business[i2]=business[i2].replace("||""\n");  
  173.           }else {  
  174.             business[i2]="";  
  175.         }  
  176.           
  177.         //business[i2]=business[i2].replace("|", "\n");  
  178.          Log.v("business", business[i2]);  
  179.           strNO[i2]=in.getNo();  
  180.           i2++;  
  181.         }  
  182.         maxCount=strID.length;  
  183.      }  
  184.        
  185.        
  186.        
  187.      /** 
  188.       * 创建菜单 
  189.       *  
  190.       */  
  191.        
  192.        @Override  
  193.     public boolean onCreateOptionsMenu(Menu menu) {  
  194.            menu.add(Menu.NONE, Menu.FIRST+15"返回首页").setIcon(android.R.drawable.ic_menu_delete);  
  195.            menu.add(Menu.NONE, Menu.FIRST+22"退出").setIcon(android.R.drawable.ic_menu_edit);  
  196.          // this.getMenuInflater().inflate(R.menu.options_menu, menu);  
  197.         return true;  
  198.     }  
  199.          
  200.          
  201.      //菜单项被选择事件  
  202.        @Override  
  203.        public boolean onOptionsItemSelected(MenuItem item) {  
  204.            switch (item.getItemId()) {  
  205.            case Menu.FIRST + 1:  
  206.               Intent intent=new Intent(SalesOrderActivity.this,MainActivity.class);  
  207.               startActivity(intent);  
  208.                break;  
  209.            case Menu.FIRST + 2:  
  210.                Intent startMain = new Intent(Intent.ACTION_MAIN);  
  211.                  startMain.addCategory(Intent.CATEGORY_HOME);  
  212.                  startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  213.                  startActivity(startMain);  
  214.                  System.exit(0);  
  215.                break;  
  216.              
  217.            }  
  218.            return false;  
  219.        }  
  220.          
  221.          
  222.        //定义自己的适配器,注意getCount和getView方法  
  223.        private class MyAdapter extends BaseAdapter{  
  224.            int count = 10 ;  
  225.             
  226.         @Override  
  227.         public int getCount() {  
  228.             return count;  
  229.         }  
  230.   
  231.         @Override  
  232.         public Object getItem(int position) {  
  233.             return position;  
  234.         }  
  235.   
  236.         @Override  
  237.         public long getItemId(int position) {  
  238.             return position;  
  239.         }  
  240.   
  241.         @Override  
  242.         public View getView(int position, View convertView, ViewGroup parent) {  
  243.            convertView=LayoutInflater.from(getApplicationContext()).inflate(R.layout.list_data, null);  
  244.            TextView noTextView=(TextView)convertView.findViewById(R.id.ItemNO);  
  245.            noTextView.setText(strNO[position]);  
  246.           TextView LinkManTextView=(TextView)convertView.findViewById(R.id.ItemLinkMan);  
  247.             LinkManTextView.setText(strLinkMan[position]);  
  248.              TextView LinkTelTextView=(TextView)convertView.findViewById(R.id.ItemLinkTel);  
  249.             LinkTelTextView.setText(strLinkTel[position]);  
  250.              TextView busTextView=(TextView)convertView.findViewById(R.id.Itembusiness1);  
  251.             busTextView.setText(business[position]);  
  252.            return convertView;  
  253.        }  
  254.    }  
  255.         
  256.         
  257.     @Override  
  258.     public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {  
  259.         Log.i("test""Scroll>>>first: " + firstVisibleItem  
  260.                 + ", visible: " + visibleItemCount + ", total: "  
  261.                 + totalItemCount);  
  262.             lastItem = firstVisibleItem + visibleItemCount -1;  
  263.             Log.i("test""Scroll>>>lastItem:" + lastItem);  
  264.             Log.i("mMyAdapter.count", mMyAdapter.count+"");  
  265.             Log.i("maxCount", maxCount+"");  
  266.             if(mMyAdapter.count < maxCount){  
  267.                 if(firstVisibleItem + visibleItemCount == totalItemCount){  
  268.                     //isLoading用于控制重复加载  
  269.                     if(!isLoading){  
  270.                         new MyTask().execute(null);  
  271.                     }  
  272.                 }  
  273.                   
  274.             }else {  
  275.                 mListView.removeFooterView(loadingLayout);  
  276.             }  
  277.             
  278.     }  
  279.     @Override  
  280.     public void onScrollStateChanged(AbsListView view, int scrollState) {  
  281.              
  282.     }     
  283.   
  284.       
  285.       
  286.     private class MyTask extends AsyncTask<Void, Void, Void> {  
  287.         @Override  
  288.         protected void onPreExecute() {  
  289.             super.onPreExecute();  
  290.       
  291.             isLoading =true;  
  292.         }  
  293.         @Override  
  294.         protected Void doInBackground(Void... params) {  
  295.             try {  
  296.                 Thread.sleep(5000);  
  297.             } catch (InterruptedException e) {  
  298.                 e.printStackTrace();  
  299.             }  
  300.               
  301.             if(mMyAdapter.count < maxCount){  
  302.                 if((maxCount - mMyAdapter.count) >10){  
  303.                     mMyAdapter.count+=10;  
  304.                 }else {  
  305.                     mMyAdapter.count+= maxCount -mMyAdapter.count;  
  306.                 }  
  307.                   
  308.             }  
  309.               
  310.             return null;  
  311.         }  
  312.         @Override  
  313.         protected void onPostExecute(Void result) {  
  314.             super.onPostExecute(result);  
  315.             mMyAdapter.notifyDataSetChanged();  
  316.             mListView.setSelection(lastItem);  
  317.             int currentPage = mMyAdapter.count / 10;  
  318.             Toast.makeText(getApplicationContext(), "第" + currentPage + "页",  
  319.                     Toast.LENGTH_LONG).show();  
  320.           
  321.             isLoading = false;  
  322.         }  
  323.     }  
  324.       
  325.       
  326.          
posted on 2011-10-21 13:52  denniswang  阅读(1581)  评论(0编辑  收藏  举报