准备一个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;@Overrideprotected 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 stubthis.dataSourceArray = dataSource;this.activityContext = context;fb = FinalBitmap.create(context);//初始化FinalBitmap模块
    }@Overridepublic int getCount() {// TODO Auto-generated method stubreturn this.dataSourceArray.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic 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;
}

转载于:https://www.cnblogs.com/ziyouchutuwenwu/archive/2013/05/23/3094633.html

android的listview+BaseAdapter的例子相关推荐

  1. 【转】【Android】使用BaseAdapter实现复杂的ListView

    原文网址:http://blog.csdn.net/jueblog/article/details/11857281 使用BaseAdapter实现复杂的ListView的步骤: 1. 数据你要准备好 ...

  2. android 自定义baseadapter listview,android之ListView和BaseAdapter的组合使用

    BaseAdapter是基本适配器,功能强大,凡是能用ArrayAdapter和SimpleAdapter解决的,都可以使用BaseAdapter解决. BaseAdapter是一个抽象类,所以需要自 ...

  3. Android杂谈--ListView之BaseAdapter的使用一(转)

    BaseAdapter是直接继承自接口类Adapter的,使用BaseAdapter时需要重写很多方法      BaseAdapter与其他Adapter有些不一样,其他的Adapter可以直接在其 ...

  4. Android杂谈--ListView之BaseAdapter的使用

    Android杂谈--ListView之BaseAdapter的使用 前言 话说开发用了各种Adapter之后感觉用的最舒服的还是BaseAdapter,尽管使用起来比其他适配器有些麻烦,但是使用它却 ...

  5. 【Android】 Android中ListView使用详解

    ListView的使用方法  ListView是Android软件开发中非常重要组件之一,基本上是个软件基本都会使用ListView ,今天我通过一个demo来教大家怎么样使用ListView组件 绘 ...

  6. 宏锦软件 Android 的 ListView 使用详解

     宏锦软件爱好者在开发Android软件时,对ListView的使用有点陌生,于是翻了许多资料,这里给大家一份比较好的教程,希望有用. 在android开发中ListView是比较常用的组件,它以 ...

  7. Android杂谈--ListView之SimpleAdapter的使用

    Android杂谈--ListView之SimpleAdapter的使用 SimpleAdapter SimpleAdapter是扩展性最好的适配器,可以定义各种你想要的布局,而且使用很方便 Simp ...

  8. Android杂谈--ListView之ArrayAdapter的使用

    Android杂谈--ListView之ArrayAdapter的使用 ArrayAdapter 总是感觉写自己的博客才更能够学到东西,网上尽管有很多好的资料,但是参差不齐,需要浪费大量时间才能够找到 ...

  9. Android 实现ListView的展开式动画ExpandAnimation

    2019独角兽企业重金招聘Python工程师标准>>> 注意:本次修改,修补了之前的部分bug android中展开动画主要有2中,Translate和Scale,但运行效果并不像j ...

最新文章

  1. 《C#精彩实例教程》小组阅读09 -- C#数组与集合
  2. 在高并发分布式情况下生成唯一标识id
  3. linux sendto 对方关闭后性能,Gateway的请问sendToUid是否有性能问题?
  4. CNCF宣布Envoy项目正式毕业
  5. javascript正则表达式总结(test|match|search|replace|split|exec)
  6. 如何解决AET field创建失败后的一系列dump
  7. Java8-如何构建一个Stream
  8. html制作花样链接卡页面_8 个「新标签页」Chrome 扩展,把 New Tab 页面玩出花样 | Matrix 精选...
  9. flutter怎么手动刷新_Flutter 小技巧实现通用的局部刷新
  10. uushare.com 增加了小组(群)功能
  11. .net 画图 饼图折线图等
  12. Liferay 6.2 改造系列之十三:修改用户编辑页面表单内容
  13. 基于MATLAB的数字滤波器之低通滤波器
  14. 基于JavaMail的Java邮件发送:复杂邮件发送
  15. ESP8266自动下载电路分析
  16. 基于openmv的汽车内后视镜
  17. HearthBuddy卡牌无法识别
  18. vue框架优点和缺点
  19. 居家第二十六天烤鸡翅
  20. java怎么用蓝牙传_[技巧]蓝牙传输JAVA简易教程(图文及小常识)

热门文章

  1. 实体店如何做好门店引流
  2. 想赚钱,赚大钱,必须要有商业思维
  3. 职位越高的人,越容易犯5个错
  4. 为什么要与下属建立良好的人际关系?
  5. 普通的人改变结果,优秀的人改变原因,顶级优秀的人改变模型
  6. Vue:开发者友好性和易用性
  7. Qt4_Find File对话框
  8. 使用PowerShell模块SQL数据库备份– DBATools
  9. transform,translate,transition 的区别
  10. SurfaceView的经典写法