博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安卓ListView自定义Adapter
阅读量:2395 次
发布时间:2019-05-10

本文共 2534 字,大约阅读时间需要 8 分钟。

list.xml

item.xml

Book.java

public class Book {    private String bookName;    private String bookPrice;    public Book(String bookName, String bookPrice) {        this.bookName = bookName;        this.bookPrice = bookPrice;    }    public String getBookName() {        return bookName;    }    public String getBookPrice() {        return bookPrice;    }    public void setBookName(String bookName) {        this.bookName = bookName;    }    public void setBookPrice(String bookPrice) {        this.bookPrice = bookPrice;    }}

list.java

List
data = new ArrayList<>(); for(int i = 0; i < 3; i++) { Book b = new Book("book","100"); data.add(b); } ListView listview = (ListView) findViewById(R.id.listview); MyListViewAdapter t = new MyListViewAdapter(this, data); listview.setAdapter(t);
MyListViewAdapter.java
public class MyListViewAdapter extends BaseAdapter {    private List
list; LayoutInflater inflater; public MyListViewAdapter(Context context, List
list) { this.list = list; inflater = LayoutInflater.from(context); } @Override public int getCount() { if (list == null) { return 0; } return list.size(); } @Override public long getItemId(int i) { return i; } @Override public Object getItem(int i) { if (list == null) { return null; } return list.get(i); } @Override public View getView(int i, View convertView, ViewGroup viewGroup) { ViewHolder viewHolder; // 当view为空时才加载布局,否则,直接修改内容 if (convertView == null) { // 通过inflate的方法加载布局,context需要在使用这个Adapter的Activity中传入。 convertView = inflater.inflate(R.layout.item, null); viewHolder = new ViewHolder(); viewHolder.bookName = (TextView) convertView.findViewById(R.id.name); viewHolder.bookPrice = (TextView) convertView.findViewById(R.id.price); convertView.setTag(viewHolder); // 用setTag方法将处理好的viewHolder放入view中 } else { // 否则,让convertView等于view,然后从中取出ViewHolder即可 viewHolder = (ViewHolder) convertView.getTag(); } // 从viewHolder中取出对应的对象,然后赋值给他们 viewHolder.bookName.setText(list.get(i).getBookName()); viewHolder.bookPrice.setText(list.get(i).getBookPrice()); // 将这个处理好的view返回 return convertView; } private class ViewHolder { public TextView bookName; public TextView bookPrice; }}

 

转载地址:http://wwwob.baihongyu.com/

你可能感兴趣的文章
概念辨析:dBm, dBi, dBd, dB, dBc, dBuV
查看>>
麻雀虽小,五脏俱全:新新手,IP和Socket小知识
查看>>
Windows常用命令集锦
查看>>
MMS彩信是怎么炼成地(一) 编辑
查看>>
MMS是怎样炼成的(二)封装
查看>>
SMIL 参考手册
查看>>
分析pptpd程序中关于执行pptpd和pppd程序的部分源代码
查看>>
RFC 1180 - TCP/IP tutorial 学习笔记
查看>>
HOWTO: Unpack, Edit, and Re-Pack Boot Images
查看>>
ramfs, rootfs &amp; initramfs
查看>>
Tom's attempts to get GPRS working over bluetooth with his laptop
查看>>
Connecting to GPRS over Bluetooth on Linux
查看>>
Linux网络资源
查看>>
Android对Kernel的改动汇总
查看>>
WGET 通过代理下载
查看>>
JITTER BUFFER
查看>>
IP协议报头学习笔记
查看>>
关于SIGPIPE导致的程序退出
查看>>
基于MTD的NAND驱动开发
查看>>
linux mtd源码分析(好东西)
查看>>