点击button按钮动态加载listView

来源:互联网 发布:淘宝新店流量 编辑:程序博客网 时间:2024/05/16 19:56

在android中listView这个控件比较常用, 比如像新浪微博的置顶加载,手机QQ空间的底端加载listView。这些demo都比较多,随便“度娘”下,一大堆。  这些写的是个比较简单的点击button加载listView数据的demo。

首先看下xml。 main.xml,   verify_table_four.xml


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:background="@drawable/zbgimg"    ><TextView      android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:id="@+id/tv"    />    <Button android:id="@+id/bt" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="增加..."/>    <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"><ListView android:id="@+id/listview" android:layout_height="wrap_content"android:layout_width="fill_parent" style="@style/list_view_style"></ListView></LinearLayout></LinearLayout>

verify_table_four.xml:

<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="wrap_content"><TableRow><TextView android:id="@+id/item1" android:layout_height="wrap_content"android:textStyle="bold" android:textSize="15dip"android:layout_width="50dip" android:width="120dip"android:textColor="#FFF" android:editable="true" /><TextView android:id="@+id/item2" android:layout_height="wrap_content"android:textSize="15dip" android:width="70dip" android:textColor="#FFF"android:layout_width="170dip" android:textStyle="bold"android:editable="true" /><TextView android:id="@+id/item3" android:textSize="15dip"android:textStyle="bold"  android:layout_width="40dip"android:editable="true" android:layout_height="wrap_content"android:textColor="#FFF" /></TableRow></TableLayout>

java代码,很简单, 就不细说。

package com.wanghf;import java.util.ArrayList;import java.util.Calendar;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.View.OnClickListener;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.TextView;public class DynamicListViewActivity extends Activity {Button bt;ListView  lv ;BaseAdapter  adapter;private ArrayList<Map<String, String>>   dataList; Map<String, String> map;     /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        bt = (Button)this.findViewById(R.id.bt);        lv = (ListView)this.findViewById(R.id.listview);        dataList = new ArrayList<Map<String, String>>();                    adapter  = new TextAdapter(DynamicListViewActivity.this,dataList);        lv.setAdapter(adapter);        setBtOnClickListener();    }    private void setBtOnClickListener(){    bt.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub            map = new HashMap<String, String>();              map.put("name", "  ");                map.put("phone", getDate());                map.put("address", "OK");                dataList.add(map);              lv.setAdapter(adapter);            adapter.notifyDataSetChanged();      }});    }        /**      * 获取系统时间      * @return      */      public String getDate(){                     Calendar ca = Calendar.getInstance();            int year = ca.get(Calendar.YEAR);//获取年份            int month=ca.get(Calendar.MONTH);//获取月份             int day=ca.get(Calendar.DATE);//获取日            int minute=ca.get(Calendar.MINUTE);//分             int hour=ca.get(Calendar.HOUR);//小时             int second=ca.get(Calendar.SECOND);//秒                       String date = year + "/" + (month + 1 )+ "/" + day + "    "+ hour + ":" + minute + ":" + second ;            return date;                }  /** *  重写baseAdapter * @author wanghf * */    private class TextAdapter extends BaseAdapter {private List<Map<String, String>>  data;public Activity activity;private LayoutInflater inflater = null;public TextAdapter(Activity a,ArrayList<Map<String, String>> dataList) {activity = a;this.data  = dataList;//LayoutInflater的作用是,把一个View的对象与XML布局文件关联并实例化inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);}public int getCount() {return data.size();}public Object getItem(int position) {return position;}public long getItemId(int position) {return position;}public View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder;if (convertView == null) {LayoutInflater li = getLayoutInflater();holder = new ViewHolder();convertView = li.inflate(R.layout.verify_table_four, null);holder.item1 = (TextView) convertView.findViewById(R.id.item1);holder.item2 = (TextView) convertView.findViewById(R.id.item2);holder.item3 = (TextView) convertView.findViewById(R.id.item3);convertView.setTag(holder);holder.item1.setText(data.get(position).get("name")+position);holder.item2.setText(data.get(position).get("phone"));holder.item3.setText(data.get(position).get("address"));} else {holder = (ViewHolder) convertView.getTag();}return convertView;}};/** * 创建此类,为了优化控件使用率, 不在重复new新的控件, 占用系统内存。 * @author wanghf * */public class ViewHolder {public TextView item1;public TextView item2;public TextView item3;}}

效果图:



资源地址:http://download.csdn.net/detail/android_home/3827736
原创粉丝点击