Android基础 为listView增加更多按钮(分页显示)
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