package com.su.morebutton;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
public class TestListViewGetMoreButtonActivity extends Activity {
private LinearLayout home_more;
private TextView home_tvmore;
private LinearLayout loading;
private ListView home_ListView;
private SimpleAdapter simpleAdapter;
private ArrayList<HashMap<String, String>> mylist;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
home_more = (LinearLayout) LayoutInflater.from(
TestListViewGetMoreButtonActivity.this).inflate(
R.layout.list_more, null);
home_tvmore = (TextView) home_more.findViewById(R.id.more_tv);
loading = (LinearLayout) home_more.findViewById(R.id.loading);
loading.setVisibility(View.GONE);
home_ListView = (ListView) findViewById(R.id.listView1);
home_ListView.addFooterView(home_more, null, false);//增加那个 更多按钮
home_tvmore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
home_tvmore.setVisibility(View.GONE);
loading.setVisibility(View.VISIBLE);
run = true;
Thread thread = new Thread(new ThreadDemo());//开启获取新数据的线程
thread.start();
}
});
// 初始化listview
mylist = new ArrayList<HashMap<String, String>>();
for (int i = 0; i < 7; i++) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("ItemTitle", "This is Title.....");
map.put("ItemText", "This is text.....");
mylist.add(map);
}
simpleAdapter = new SimpleAdapter(this, mylist, R.layout.item,
new String[] { "ItemTitle", "ItemText" }, new int[] {
R.id.ItemTitle, R.id.ItemText });
home_ListView.setAdapter(simpleAdapter);
}
Handler endSessionHandle = new Handler() {
@Override
public void handleMessage(Message msg) {
finish();
}
};
private boolean run = true;
class ThreadDemo implements Runnable {
Message msg = handle.obtainMessage();
public void run() {
while (run) {
msg.obj = getDate();
msg.what = 1;
handle.sendMessage(msg);
run = false;
}
}
}
Handler handle = new Handler() {
@SuppressWarnings("unchecked")
public void handleMessage(Message msg) {
if (msg.what == 1) {
Log.e("测试", "");
mylist.addAll((ArrayList<HashMap<String, String>>) msg.obj);
simpleAdapter.notifyDataSetChanged();
home_tvmore.setVisibility(View.VISIBLE);// 再次回到以前状态
loading.setVisibility(View.GONE);
}
}
};
/**
* 获取list的数据一般是来自网络
*/
private ArrayList<HashMap<String, String>> getDate() {
ArrayList<HashMap<String, String>> newList = new ArrayList<HashMap<String, String>>();
try {
for (int i = 0; i < 5; i++) {
// 执行的增加数据方法
HashMap<String, String> map = new HashMap<String, String>();
map.put("ItemTitle", "Added Title.....");
map.put("ItemText", "added text.....");
newList.add(map);
if (i == 4) {
}
Thread.sleep(500);
}
} catch (Exception e) {
e.printStackTrace();
Log.e("WeiboPub", e.getMessage());
}
return newList;
}
}
http://dl.vmall.com/c0jnos5z6k