初学_Android4高级编程-4 简单的Adapter

※Adapter

·ArrayAdapter 使用泛型把Adapter视图绑定到一个指定类的对象的数组。使用一个对象数组的每个元素的toString值来填充指定布局中的TextView。
ArrayList<String> item = new ArrayList<>();
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this,R.layout.item_list,item);

·SimpleAdapter
List<Map<String, String>> list;
list = new ArrayList<>();
Map<String, String> map;
map = new HashMap<>();
map.put("text", "item1");
list.add(map);
map = new HashMap<>();
map.put("text", "item2");
list.add(map);
SimpleAdapter simpleAdapter = new SimpleAdapter(getApplicationContext(), list, R.layout.item_list_view, new String[]{"text"}, new int[]{R.id.item_tv});

·SimpleCursorAdapter用于将一个Cursor绑定到一个AdapterView,并使用一个布局来定义每个行/条目的UI。每个行当视图的内容是底层Cursor中对应行的列值进行填充的。
String[] fromColums = new String[]{"str1","str2"};
int[] toLayoutIDs = new int[]{R.id.text1,R.id.text2};
SimpleCurosorAdapter myAdapter = new SimpleCursorAdapter(MainActivity.this,R.layout.item_simplecusor, cursor, fromColums, toLayoutIDs,flag);

·继承于BaseAdapter
public class MyAdapter extends BaseAdapter {
private List<ItemBean> list=new ArrayList<>();
static Context context;
private LayoutInflater inflater;

public MyAdapter(Context context,List<ItemBean> list) {
this.list = list;
this.context=context;
inflater=LayoutInflater.from(context);
}

@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int position) {
return list.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder=new ViewHolder();
if(convertView==null){
convertView=inflater.inflate(R.layout.item,null);
holder.iv=(ImageView) convertView.findViewById(R.id.imageview);
holder.title=(TextView) convertView.findViewById(R.id.title);
holder.time=(TextView) convertView.findViewById(R.id.time);
holder.content=(TextView) convertView.findViewById(R.id.content);
convertView.setTag(holder);
}
else{
holder=(ViewHolder) convertView.getTag();
}
ItemBean item=list.get(position);
holder.iv.setImageResource(item.getImageres());
holder.title.setText(item.getTitle());
holder.time.setText(item.getTime());
holder.content.setText(item.getContent());
return convertView;
}
class ViewHolder{
ImageView iv;
TextView title;
TextView time;
TextView content;
}
}

时间: 2024-10-28 01:09:38

初学_Android4高级编程-4 简单的Adapter的相关文章

初学_Android4高级编程-2 Fragment

Fragment允许将activity拆分成多个完全独立封装的可重用控件.每个组件有它自己的生命周期和UI布局.(类似于一个嵌入在activity中的activity)通过继承Fragment来创建一个新的Fragment,大多数情况下,需要为Fragment分配一个UI(xml布局文件),也可以创建一个没有任何UI的后台行为的Fragment. public class MyFragment extends Fragment{ //调用该方法连接它的父Activity @Override pu

初学_Android4高级编程-1 Application单例,及优化布局

※Application每次应用程序运行时,Application类保持实例化状态,Application实现为一个单态(单例),扩展如:import *;public class MyApplication extends Application{ private static MyApplication singleton; public static MyApplication getIntance(){ return singleton; } //创建应用程序是调用,实例化应用程序单态,

初学_Android4高级编程-3 自定义View

※创建自定义控件1.修改现有视图,继承android自带控件,扩展自带控件来定制其外观和行为.2.直接继承View,SurfaceView类,在一个空画布上创建新的控件 由于效率问题,在自定义的构造函数中完成画刷的创建.public MyTextVIew(Context context) { super(context); Resources resources = getResources(); marginPaint = new Paint(Paint.ANTI_ALIAS_FLAG); m

unix环境高级编程编译方法 -apue最简单编译方法(第二版)

<UNIX环境高级编程>(这里使用的是第二版本的源码)每个历程中,都会有这样一行源码: #include "apue.h" 这个头文件是作者把把每个例程中常用的标准头文件,一些常用的出错处理函数(err_**()之类的函 数)和一些常用的宏定义给整理在一个头文件中.这个可以省去在每个例程中录入较多的重复代码,这样可 以减少每个例程的长度.给读者带来了不少麻烦.下面给出一种源代码的编译方法. 1.解压文件到apue.2e目录 2.修改相应平台的文件,我使用的是linux,所以

Unix 环境高级编程 (APUE) 之 网络 IPC:套接字

一起学 Unix 环境高级编程 (APUE) 之 网络 IPC:套接字 . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录 (四) 一起学 Unix 环境高级编程 (APUE) 之 系统数据文件和信息 (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境 (六) 一起学 Unix 环境高级编程 (APU

Linux C高级编程——网络编程基础(1)

Linux高级编程--BSD socket的网络编程 宗旨:技术的学习是有限的,分享的精神是无限的. 一网络通信基础 TCP/IP协议簇基础:之所以称TCP/IP是一个协议簇,是由于TCP/IP包括TCP .IP.UDP.ICMP等多种协议.下图是OSI模型与TCP/IP模型的对照.TCP/IP将网络划分为4层模型:应用层.传输层.网络层和网络接口层(有些书籍将其分为5层,即网络接口层由链路层和物理层组成) (1)网络接口层:模型的基层.负责数据帧的发送已接收(帧是独立的网络信息传输单元).网络

UNIX环境高级编程笔记之文件I/O

一.看图说话 一图胜过千言,看图! 二.唠一唠 在写之前,先唠几句,<UNIX环境高级编程>,简称APUE,这本书简直是本神书,像我这种小白,基本上每看完一章都是“哇”这种很吃惊的表情.其实大概三年前,那会大三,我就买了这本书,也看过一些,但好像没有留下什么印象,今天再看,依然觉得像新的一样.很大的原因我想是一直以来都在用windows(用windows做开发为什么学不到真正的技术,我想大家都懂的),当然知识结构不完整,学习能力这些就不说了.所以,对于那些致力于想在Linux下做开发的人来说,

《C#高级编程》读书笔记

<C#高级编程>读书笔记 C#类型的取值范围 名称 CTS类型 说明 范围 sbyte System.SByte 8位有符号的整数 -128~127(−27−27~27−127−1) short System.Int16 16位有符号的整数 -32 768~32 767(−215−215~215−1215−1) int System.Int32 32位有符号的整数 -2 147 483 648~2 147 483 647(−231−231~231−1231−1) long System.Int

JavaScript高级编程随笔

前言: 本人之前在博客园写过一遍关于MVC基础的一个小文章,由于当时各种原因没能继续坚持写下去,最近本人在学习JavaScript,想用自己的方式整理出来,主要是为了加深自己的印象,我还是一个前端的小学生,希望各位前端的前辈多指点.我会吧每一章节学到的看到的整理到我的博客园里,虽然这本书前面讲的很基础,我也会坚持发表文章.好了废话说到这里开始进入正题. Content: 本人现在准备要看的第一本书是<JavaScript高级编程>[第三版],这是一本比较经典的JS书籍,即使前面几章比较简单基础