main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical" android:layout_width="fill_parent"

android:layout_height="fill_parent" android:id="@+id/ll">

<ListView android:layout_height="wrap_content" android:id="@id/android:list"

android:layout_width="fill_parent"></ListView>

</LinearLayout>

DongTailist.xml

package cn.fn;

import android.app.Activity;

import android.os.Bundle;

import android.app.ListActivity;

import android.os.Handler;

import android.os.Message;

import android.view.Gravity;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AbsListView;

import android.widget.BaseAdapter;

import android.widget.ListView;

import android.widget.TextView;

public class DongTailist extends ListActivity {

private ListView listView;

private MyListViewAdapter adapter;

private int scrollState;

private View footerView;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

listView = getListView();

footerView = LayoutInflater.from(this).inflate(R.layout.main, null);

listView.addFooterView(footerView); //在ListView底部添加正在加载视图

//注意:addFooterView方法需要在调用setListAdapter方法前调用!

adapter = new MyListViewAdapter(DongTailist.this);

setListAdapter(adapter);

getListView().setOnScrollListener(new AbsListView.OnScrollListener() {

@Override

public void onScrollStateChanged(AbsListView view, int scrollState) {

DongTailist.this.scrollState = scrollState;

}

@Override

public void onScroll(AbsListView view, int firstVisibleItem,

int visibleItemCount, int totalItemCount) {

int lastVisibleItem = firstVisibleItem + visibleItemCount - 1; //可视的最后一个列表项的索引

/*

* 当列表正处于滑动状态且滑动到列表底部时,执行

* */

if(DongTailist.this.scrollState != AbsListView.OnScrollListener.SCROLL_STATE_IDLE

&& lastVisibleItem == totalItemCount - 1) {

/*

* 执行线程,睡眠5秒钟后添加10个列表项

* */

new Thread() {

private Handler handler = new Handler() {

@Override

public void handleMessage(Message msg) {

super.handleMessage(msg);

adapter.count += 10;

adapter.notifyDataSetChanged();

}

};

@Override

public void run() {

super.run();

try {

sleep(5000);

handler.sendEmptyMessage(0);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}.start();

}

}

});

}

}


MyListViewAdapter.xml

package cn.fn;

import android.content.Context;

import android.view.Gravity;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AbsListView;

import android.widget.BaseAdapter;

import android.widget.TextView;

public class MyListViewAdapter extends BaseAdapter {

int count = 20; // 初始列表项数量

private Context context;

public MyListViewAdapter(Context _context) {

context = _context;

}

@Override

public int getCount() {

return count;

}

@Override

public Object getItem(int position) {

return position;

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

TextView result = (TextView) convertView;

if (result == null) {

result = new TextView(context);

result.setTextAppearance(context,

android.R.style.TextAppearance_Large);

AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(

AbsListView.LayoutParams.FILL_PARENT,

AbsListView.LayoutParams.WRAP_CONTENT);

result.setLayoutParams(layoutParams);

result.setGravity(Gravity.CENTER);

}

result.setText("Item " + (position + 1));

return result;

}

}


更多相关文章

  1. android中View.measure方法详解
  2. Android(安卓)SDK大连东软镜像地址及地址列表
  3. Unity调用Android录音
  4. android wifi子系统
  5. Unity调用Android录音
  6. Android(安卓)ExpandableListView同时显示多种不同类型字列表
  7. android 列表框
  8. android绑定服务方法使用
  9. Android学习札记18:Drawable中的setDither()方法

随机推荐

  1. PHP与JS数据遍历
  2. PHP基础学习与软件搭建
  3. 作业标题:0802-php是什么及运行原理 编程
  4. 【前端 · 面试 】HTTP 总结(二)—— HTTP
  5. 记一下网站被攻击经历
  6. 字符串 和数组的方法 以及js 的分支 和
  7. php遍历与js遍历区别
  8. PHP数组遍历与Javascript数组遍历的区别
  9. 07-12 作业
  10. php第一天的作业