`
mickey_hou
  • 浏览: 237652 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android分页处理-1

阅读更多
public class Paging extends Activity implements OnScrollListener
{
   
    private ListView items_list;
   
    /*
     * 最后可视索引
     */
    private int last_index = 0;
   
    /*
     * 一页显示条数
     */
    private int items_count = 10;
   
    /*
     * 数据总长度
     */
    private int data_size = 40;
   
    /*
     * ListView 适配器引用对象
     */
    private PaginationAdapter paging_adapter;
   
    private View load_more_view;
   
    private Button load_more_item;
   
    private Handler handler = new Handler();
   
    private int DELAY_TIME = 2000;
   
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        load_more_view = getLayoutInflater().inflate(R.layout.loadmore, null);
       
        /*
         * dispose Load Items
         */
        disposeLoadItems();
       
        items_list = (ListView)findViewById(R.id.lvNews);
        items_list.addFooterView(load_more_view); 
        initializeAdapter();
        items_list.setAdapter(paging_adapter);
        items_list.setOnScrollListener(this);
       
    }
   
    /**
     *
     * @param
     * @return void
     * @throws
     * @since TianTian
     */
    public void onScrollStateChanged(AbsListView view, int scrollState)
    {
         int itemsLastIndex = paging_adapter.getCount()-1;  //数据集最后一项的索引
         int lastIndex = itemsLastIndex + 1;
         if (scrollState == OnScrollListener.SCROLL_STATE_IDLE && last_index == lastIndex)
         {
             // 如果是自动加载,可以在这里放置异步加载数据的代码
             Log.v("-----------", "-------------------");
             load_more_item = (Button)load_more_view.findViewById(R.id.loadMoreButton);
             load_more_item.setText("正在加载中...");
             handler.postDelayed(new Runnable()
             {
                  @Override
                  public void run()
                  {
                      loadMoreData();
                      paging_adapter.notifyDataSetChanged();
                      load_more_item.setText("查看更多...");  //恢复按钮文字
                  }
              },DELAY_TIME);
            
             paging_adapter.notifyDataSetChanged();
         }
     }
   
    /**
     *
     * @param
     * @return void
     * @throws
     * @since TianTian
     */
    public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount)
    {
         this.items_count = visibleItemCount;
        
         last_index = firstVisibleItem + visibleItemCount - 1;
         
         Log.e("========================= ","========================");
         Log.e("items_count = ",items_count+"");
         Log.e("firstVisibleItem = ",firstVisibleItem+"");
         Log.e("visibleItemCount = ",visibleItemCount+"");
         Log.e("totalItemCount = ",totalItemCount+"");
         Log.e("========================= ","========================");
         
         //如果所有的记录选项等于数据集的条数,则移除列表底部视图
         if(totalItemCount == data_size + 1)
         {
             items_list.removeFooterView(load_more_view);
             Toast.makeText(this, "数据全部加载完!", Toast.LENGTH_LONG).show();
         }
     }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics