ListView 实现像Android Market那样 分页加载 滚动加载

来源:技术人生 责任编辑:栏目编辑 发表时间:2013-07-01 14:32 点击:
package zy.lucifer.ListViewScroll;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AbsListView.OnScrollListener;
import android.widget.LinearLayout.LayoutParams;
public class ListViewScroll extends Activity {
 /** Called when the activity is first created. */
 private LayoutParams mLayoutParams = new LinearLayout.LayoutParams(
   LinearLayout.LayoutParams.WRAP_CONTENT,
   LinearLayout.LayoutParams.WRAP_CONTENT);
 /**
  * 设置布局显示目标最大化属性
  */
 private LayoutParams FFlayoutParams = new LinearLayout.LayoutParams(
   LinearLayout.LayoutParams.FILL_PARENT,
   LinearLayout.LayoutParams.FILL_PARENT);
 ListView listView ;
 private int lastItem = 0;
 LinearLayout loadingLayout;
 private listViewAdapter adapter;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  listView = (ListView) findViewById(R.id.myList);
  
  Log.i("test", "onCreate(Bundle savedInstanceState)>>>>>>>>>>>>>>>");
  // 线性布局
  LinearLayout layout = new LinearLayout(this);
  // 设置布局 水平方向
  layout.setOrientation(LinearLayout.HORIZONTAL);
  // 进度条
  ProgressBar progressBar = new ProgressBar(this);
  // 进度条显示位置
  progressBar.setPadding(0, 0, 15, 0);
  // 把进度条加入到layout中
  layout.addView(progressBar, mLayoutParams);
  // 文本内容
  TextView textView = new TextView(this);
  textView.setText("加载中...");
  textView.setGravity(Gravity.CENTER_VERTICAL);
  // 把文本加入到layout中
  layout.addView(textView, FFlayoutParams);
  // 设置layout的重力方向,即对齐方式是
  layout.setGravity(Gravity.CENTER);
  // 设置ListView的页脚layout
  loadingLayout = new LinearLayout(this);
  loadingLayout.addView(layout, mLayoutParams);
  loadingLayout.setGravity(Gravity.CENTER);
  listView.addFooterView(loadingLayout);
  adapter = new listViewAdapter();
  listView.setAdapter(adapter);
  listView.setOnScrollListener(new OnScrollListener() {
 
   @Override
   public void onScroll(AbsListView view, int firstVisibleItem,
     int visibleItemCount, int totalItemCount) {
    // TODO Auto-generated method stub
    Log.i("test" , "Scroll>>>first: " + firstVisibleItem + ", visible: " + visibleItemCount + ", total: " + totalItemCount);
    lastItem = firstVisibleItem + visibleItemCount - 1;
    Log.i("test" , "Scroll>>>lastItem:" + lastItem);
    //显示50条ListItem,即0-49,因为onScroll是在“滑动”执行过之后才触发,所以用adapter.count<=41作条件
    int scrolllength=101;
    if (adapter.count<=scrolllength) {
     if (firstVisibleItem+visibleItemCount==totalItemCount) {
      adapter.count += 10;<
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Android 完全退出程序
    • 原创:Android应用开发-Andorid歌词秀,含源码
    • android 屏幕保护
    • Android手机软件汉化教程---第四课 dex文件汉化
    • 众多Android 开源项目推荐,给力工作给力学习
    • Android Audio代码分析4
    • Android得到已安装的应用程序信息!
    • Android开发者指南(29) —— USB Host and Accessory
    • Android成长的幕后推手:工程师鲁宾
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1