Android listview与adapter用法
http://www.cnblogs.com/zhengbeibei/archive/2013/05/14/3078805.html

package com.example.listviewtest;import java.util.ArrayList;import java.util.HashMap;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.TextView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;//import com.example.listviewtest.MyAdapter;public class BaseAdapterTest extends Activity {        private ListView lv;    ArrayList<HashMap<String, Object>> listItem;        @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                lv = (ListView) findViewById(R.id.listview01);                MyAdapter mAdapter = new MyAdapter(this); //得到一个MyAdapter对象                lv.setAdapter(mAdapter); //为ListView绑定Adapter         /*为ListView添加点击事件*/         lv.setOnItemClickListener(new OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view,                    int position, long id) {                Log.v("BaseAdapterTest", "你点击了ListView条目" + position);            }        });            }        /*添加一个得到数据的方法,方便使用*/    private ArrayList<HashMap<String, Object>> getData() {        ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String,Object>>();                /*为动态数组添加数据*/        for (int i = 0; i < 30; i++) {            HashMap<String, Object> map = new HashMap<String, Object>();            map.put("ItemTitle", "第" + i + "行");            map.put("ItemText", "这是第" + i + "行");            listItem.add(map);        }                return listItem;    }        // 新建一个类继承BaseAdapter,实现视图与数据的绑定    private class MyAdapter extends BaseAdapter {                private LayoutInflater mInflater; //得到一个LayoutInfalter对象用来导入布局                public MyAdapter(Context context) {            this.mInflater = LayoutInflater.from(context);        }                @Override        public int getCount() {            return getData().size(); //返回数组的长度        }                        @Override        public View getView(final int position, View convertView, ViewGroup parent) {            ViewHolder holder;            Log.v("BaseAdapterTest", "getView " + position + " " + convertView);                        if (convertView == null) {                convertView = mInflater.inflate(R.layout.listitem, null);                holder = new ViewHolder();                /*得到各个控件的对象*/                holder.title = (TextView) convertView.findViewById(R.id.ItemTitle);                holder.text = (TextView) convertView.findViewById(R.id.ItemText);                holder.bt = (Button) convertView.findViewById(R.id.ItemButton); // to ItemButton                                convertView.setTag(holder); //绑定ViewHolder对象            }            else {                holder = (ViewHolder) convertView.getTag(); //取出ViewHolder对象            }                        /*设置TextView显示的内容,即我们存放在动态数组中的数据*/            holder.title.setText(getData().get(position).get("ItemTitle").toString());            holder.text.setText(getData().get(position).get("ItemText").toString());            /*为Button添加点击事件*/            holder.bt.setOnClickListener(new OnClickListener() {                @Override                public void onClick(View v) {                    Log.v("BaseAdapterTest", "你点击了按钮" + position);                    //打印Button的点击信息                }            });                        return convertView;        }                @Override        public Object getItem(int position) {            // TODO Auto-generated method stub            return null;        }        @Override        public long getItemId(int position) {            // TODO Auto-generated method stub            return 0;        }    }        /*存放控件 的ViewHolder*/    public final class ViewHolder {        public TextView title;        public TextView text;        public Button bt;    }}

更多相关文章

  1. android 以编程的方式使用SQLite数据库 执行CRUD(创建 读取 更新
  2. android操作sqlite3的blob字段,显示数据中的图片
  3. Android中内容提供者ContentProvider实现数据库增删改查
  4. android中如何解析没有Key的Json数据
  5. Android 中的Intent在两个Acitvity传递数据示例
  6. 数据库判断是否为某一个值时sql
  7. Android学习--动态向SPinner控件中添加数据
  8. android简单登陆和注册功能实现+SQLite数据库学习
  9. Android数据库升级解决方案

随机推荐

  1. Android实现振动效果
  2. react-native02:安卓返回键控制
  3. android之SQLite
  4. Android(安卓)studio 打包问题:Lint found
  5. android 设置全屏,导航栏透明
  6. Android自动化测试之MonkeyRunner之Monke
  7. Android高手进阶教程(十)之----Android(
  8. android 动态设置background颜色
  9. 隐藏Android底部的虚拟按键
  10. android按键定义