zoukankan      html  css  js  c++  java
  • Android 之 ListView使用BaseAdapter展示列表

    simpleitem.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >
    
        <TextView
            android:id="@+id/id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_weight="2" />
    
        <TextView
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:layout_weight="10"/>
    
        <TextView
            android:id="@+id/age"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_weight="3"/>
    
    </LinearLayout>

    BaseAdapterDemo.java

    package com.example.phonedemo;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import com.example.phonedemo.util.Utils;
    
    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.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.BaseAdapter;
    import android.widget.LinearLayout;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class BaseAdapterDemo extends Activity {
    
        private ListView listView = null;
        private LinearLayout layout = null;
        private MyBaseAdapter adapter = null;
    
        /**
         * 功能:静态类,优化list
         * 
         * @author qinxijuan
         * 
         */
        static class ViewHolder {
            TextView id = null;
            TextView name = null;
            TextView age = null;
        }
    
        class MyBaseAdapter extends BaseAdapter {
    
            public List<Map<String, Object>> list = null;
            private LayoutInflater lif = null;
    
            public MyBaseAdapter(List<Map<String, Object>> l, Context context) {
                this.list = l;
                this.lif = LayoutInflater.from(context);
            }
    
            @Override
            public int getCount() {
                // TODO Auto-generated method stub
                return this.list.size();
            }
    
            @Override
            public Object getItem(int arg0) {
                // TODO Auto-generated method stub
                return null;
            }
    
            @Override
            public long getItemId(int arg0) {
                // TODO Auto-generated method stub
                return 0;
            }
    
            @Override
            public View getView(int postion, View convertView, ViewGroup parent) {
                ViewHolder holder = null;
                if (convertView == null) {
                    holder = new ViewHolder();
                    convertView = lif.inflate(R.layout.simpleitem, null);
                    holder.id = (TextView) convertView.findViewById(R.id.id);
                    holder.name = (TextView) convertView.findViewById(R.id.name);
                    holder.age = (TextView) convertView.findViewById(R.id.age);
                    convertView.setTag(holder);
                } else {
                    holder = (ViewHolder) convertView.getTag();
                }
                holder.id.setText(this.list.get(postion).get("id").toString());
                holder.name.setText(this.list.get(postion).get("name").toString());
                holder.age.setText(this.list.get(postion).get("age").toString());
                return convertView;
            }
    
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            this.layout = new LinearLayout(this);
            this.layout.setOrientation(LinearLayout.VERTICAL);
            this.listView = new ListView(this);
            this.adapter = new MyBaseAdapter(initList(), this);
            this.listView.setAdapter(this.adapter);
            this.listView.setOnItemClickListener(new OnItemClickListener() {
    
                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1,
                        int position, long arg3) {
                    // TODO Auto-generated method stub
                    Toast.makeText(
                            BaseAdapterDemo.this,
                            "您选择了:"
                                    + BaseAdapterDemo.this.adapter.list
                                            .get(position).get("id").toString(),
                            Toast.LENGTH_SHORT).show();
                }
            });
            this.layout.addView(this.listView, Utils.match);
            super.addContentView(this.layout, Utils.match);
        }
    
        private List<Map<String, Object>> initList() {
            List<Map<String, Object>> temp = new ArrayList<Map<String, Object>>();
            Map<String, Object> map = null;
            for (int i = 0; i < 20; i++) {
                map = new HashMap<String, Object>();
                map.put("id", i);
                map.put("name", "张三" + i + "号");
                map.put("age", 28);
                map.put("email", "zhangsan@163.com");
                temp.add(map);
            }
            return temp;
        }
    
    }
  • 相关阅读:
    记事本开发者日记~二
    《梦断代码》读后感①
    记事本开发日记~一
    仓库管理msi系统
    java web + mysql 的增删改查
    第九周动手动脑
    四则运算答题版
    JAVA常用的异常处理情况
    继承和多态中动手动脑
    laravel1
  • 原文地址:https://www.cnblogs.com/waddell/p/3402975.html
Copyright © 2011-2022 走看看