zoukankan      html  css  js  c++  java
  • android的listview+BaseAdapter的例子

    准备一个listview的xml,绑定到activity里面的listView的变量

    准备一个继承自BaseAdapter的的MyAdapter,构造函数里面传入一个datasource的array,一个context,一般为绑定listview的activity(用来把item的xml实例化为layout)

    准备一个数据模型,可以用hashmap,也可以用list

    MainActivity.java

    package com.example.testapp;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.GridView;
    import android.widget.ListView;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        private List<ObjectEntity> dataSource;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            
    //        initListView();
            initGridView();
        }
        
        private void initListView() {
            
            setContentView(R.layout.activity_list_main);
            ListView listView = (ListView)findViewById(R.id.listView1);
            
            dataSource = new ArrayList<ObjectEntity>();
            
            for (int i = 0; i < 10; i++) {
                ObjectEntity object = new ObjectEntity();
                
                object.imgUrl = "http://a.hiphotos.baidu.com/album/w%3D2048/sign=3da6584ff2deb48ffb69a6dec4273b29/960a304e251f95ca11945098c8177f3e670952bf.jpg";
                object.desc = "这是list描述信息";
                
                dataSource.add(object);
            }
                    
            MyAdapter myAdapter = new MyAdapter(dataSource,MainActivity.this);
            listView.setAdapter(myAdapter);
            
            listView.setOnItemClickListener(new OnItemClickListener() {
            
                public void onItemClick(AdapterView<?> parent, View view, int position, long id)
                {
                    ObjectEntity data = dataSource.get(position);
                    
                    Toast.makeText(getApplicationContext(),  
                            data.desc, 
                            Toast.LENGTH_SHORT).show(); 
                }
            });
        }
        
        private void initGridView() {
    
            setContentView(R.layout.ctivity_grid_main);
            GridView gridView = (GridView)findViewById(R.id.gridView1);
            
            dataSource = new ArrayList<ObjectEntity>();
            
            for (int i = 0; i < 10; i++) {
                ObjectEntity object = new ObjectEntity();
                
                object.imgUrl = "http://a.hiphotos.baidu.com/album/w%3D2048/sign=3da6584ff2deb48ffb69a6dec4273b29/960a304e251f95ca11945098c8177f3e670952bf.jpg";
                object.desc = "这是grid描述信息";
                
                dataSource.add(object);
            }
        
            MyAdapter myAdapter = new MyAdapter(dataSource,MainActivity.this);
            gridView.setAdapter(myAdapter);
            
            gridView.setOnItemClickListener(new OnItemClickListener() {
                
                public void onItemClick(AdapterView<?> parent, View view, int position, long id)
                {
                    ObjectEntity data = dataSource.get(position);
                    
                    Toast.makeText(getApplicationContext(),  
                            data.desc, 
                            Toast.LENGTH_SHORT).show(); 
                }
            });
        }
    }

    MyAdapter.java

    package com.example.testapp;
    import java.util.List;
    
    import net.tsz.afinal.FinalBitmap;
    import android.app.Activity;
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    
    public class MyAdapter extends BaseAdapter {
    
        private FinalBitmap fb;
        
        private List<ObjectEntity> dataSourceArray;
        private Context activityContext;
        
        public MyAdapter(List<ObjectEntity> dataSource,Context context) {
            // TODO Auto-generated constructor stub
            
            this.dataSourceArray = dataSource;
            this.activityContext = context;
            
            fb = FinalBitmap.create(context);//初始化FinalBitmap模块
        }
    
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return this.dataSourceArray.size();
        }
    
        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return position;
        }
    
        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            
            ObjectEntity data = dataSourceArray.get(position);
            
            if ( null == convertView )
            {
                LayoutInflater inflater = ((Activity)activityContext).getLayoutInflater();
                convertView = inflater.inflate(R.layout.item, null);
                
                ImageView imgView = (ImageView)convertView.findViewById(R.id.listitem_pic);
                
                //AFinal很好很强大 fb.configLoadingImage(R.drawable.ic_launcher); fb.display(imgView,data.imgUrl); } TextView info
    = (TextView)convertView.findViewById(R.id.listitem_title); info.setText(data.desc); return convertView; } }

    ObjectEntity.java

    package com.example.testapp;
    
    public class ObjectEntity {
    
        public String imgUrl;
        public String desc;
    }
  • 相关阅读:
    thymeleaf时间戳转换
    alerttemplate 时间戳转换
    jQuery.Deferred exception: a.indexOf is not a function TypeError: a.indexOf is not a function
    区分数据是对象还是字符串
    eclipse中选取一列快捷键
    图片拉伸不变型
    这里ajax需要改成同步
    idea如何整理代码格式
    20170311-起早床
    20190310-解决头屑
  • 原文地址:https://www.cnblogs.com/ziyouchutuwenwu/p/3094633.html
Copyright © 2011-2022 走看看