1. 代码示例,( 数据库来源上篇的数据)

MainActivity.java

public class MainActivity extends Activity {

	private ListView lv1 = null;
private List<NoteBean> lists = null; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv1 = (ListView) findViewById(R.id.lv1); NoteDao dao = new NoteDao(this);
lists = dao.findAll(); // 设置listview的数据了.
// 采用 mvc的方式 设计listview控件
// model 数据
// view listview的控件
// control 控制 //Adapter一: BaseAdapter, 可以自己通过xml布局设计view
//lv1.setAdapter(new MyAdapter()); //Adapter二: ArrayAdapter 方便显示单一文本的listview
//lv1.setAdapter(new ArrayAdapter<String>
//(this, R.layout.item, R.id.item_name, new String[]{"aaa","bbb","vvv"})); //Adapter三: SimpleAdapter
List<Map<String, Object>> data = new ArrayList<Map<String, Object>>(); //map中还可以存放item对应的图标ID R.drawable.*
Map<String, Object> item1 = new HashMap<String, Object>();
item1.put("image", R.drawable.image1);
item1.put("id", "1");
item1.put("name", "kevin");
item1.put("money", "1000"); Map<String, Object> item2 = new HashMap<String, Object>();
item2.put("image", R.drawable.image2);
item2.put("id", "2");
item2.put("name", "xiang");
item2.put("money", "2000"); data.add(item1);
data.add(item2); lv1.setAdapter(new SimpleAdapter(this, data, R.layout.item,
new String[]{"image","id","name","money"},
new int[]{R.id.image,R.id.item_id,R.id.item_name,R.id.item_money})); } private class MyAdapter extends BaseAdapter{ /**
* 控制listview里面有多个条目.
*/
@Override
public int getCount() {
return lists.size();
} /**
* 返回每个位置对应的view对象
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) { View v = View.inflate(MainActivity.this, R.layout.item, null);
TextView id = (TextView) v.findViewById(R.id.item_id);
id.setText(lists.get(position).getId()+"");
TextView name = (TextView) v.findViewById(R.id.item_name);
name.setText(lists.get(position).getName());
TextView money = (TextView) v.findViewById(R.id.item_money);
money.setText(lists.get(position).getMoney() + ""); return v;
} @Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
} @Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
}
}

activity_main.xml, activity布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <ListView android:id="@+id/lv1"
android:layout_width="match_parent"
android:layout_height="match_parent"> </ListView> </RelativeLayout>

item.xml, listview需要的view布局

<?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" > <ImageView android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"
/> <TextView
android:id="@+id/item_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" /> <TextView
android:id="@+id/item_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" /> <TextView
android:id="@+id/item_money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" /> </LinearLayout>

Android -- listview的使用, Inflater打气筒创建View对象,三种数据Adapter的更多相关文章

  1. ListView适配器获取布局文件作为View的三种方式

    第一种方法: public View getView(int position, View convertView, ViewGroup parent) { View view = null; if ...

  2. 【朝花夕拾】Android自定义View篇之(四)自定义View的三种实现方式及自定义属性使用介绍

    前言 转载请声明,转自[https://www.cnblogs.com/andy-songwei/p/10979161.html],谢谢! 尽管Android系统提供了不少控件,但是有很多酷炫效果仍然 ...

  3. AJPFX总结java创建线程的三种方式及其对比

    Java中创建线程主要有三种方式: 一.继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此把run()方法称为执行 ...

  4. 【Android】Eclipse自己主动编译NDK/JNI的三种方法

    [Android]Eclipse自己主动编译NDK/JNI的三种方法 SkySeraph Sep. 18th  2014 Email:skyseraph00@163.com 一.Eclipse关联cy ...

  5. 0036 Java学习笔记-多线程-创建线程的三种方式

    创建线程 创建线程的三种方式: 继承java.lang.Thread 实现java.lang.Runnable接口 实现java.util.concurrent.Callable接口 所有的线程对象都 ...

  6. js学习-DOM之动态创建元素的三种方式、插入元素、onkeydown与onkeyup两个事件整理

    动态创建元素的三种方式: 第一种: Document.write(); <body> <input type="button" id="btn" ...

  7. TI C66x DSP 系统events及其应用 - 5.10(创建ISR的三种情况)

    ISFP是服务中断的指令包,创建ISR的三种情况: 1.一个ISFP包的8条指令就能够满足ISR watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWl5ZW ...

  8. java创建线程的三种方法

    这里不会贴代码,只是将创建线程的三种方法做个笼统的介绍,再根据源码添加上自己的分析. 通过三种方法可以创建java线程: 1.继承Thread类. 2.实现Runnable接口. 3.实现Callab ...

  9. spring创建bean的三种方式

    spring创建bean的三种方式: 1通过构造方法创建bean(最常用) 1.1 spring默认会通过无参构造方法来创建bean,如果xml文件是这样配置,则实体类中必须要有无参构造方法,无参构造 ...

随机推荐

  1. angularjs中的$destroy和$timeout

    module.controller("TestController", function($scope, $timeout) { var onTimeout = function( ...

  2. Vue.js_数据绑定

    一.文本 data {{data}} <div id="div1">{{message}}</div> <script> var div1 = ...

  3. Android搜索控件的基本使用方法

    在Android中,搜索是一个非常核心的功能,我们可以通过它搜索到任意我们可以获得的信息.这些信息可以是存储在手机中的联系人.文件等信息,也可以是在网络上的资源. Android为了给用户提供良好的搜 ...

  4. 巨蟒python全栈开发-第7天 基本数据类型补充&深浅拷贝

    1.基本数据类型补充 2.深浅拷贝 DAY7-基本数据类型(基本数据类型补充&深浅拷贝) 本节主要内容: 1.补充基础数据类型 (1)join方法 (2)split方法 (3)列表不能在循环时 ...

  5. 推荐10 个短小却超实用的 JavaScript 代码段

    1. 判断日期是否有效 JavaScript中自带的日期函数还是太过简单,很难满足真实项目中对不同日期格式进行解析和判断的需要.jQuery也有一些第三方库来使日期相关的处理变得简单,但有时你可能只需 ...

  6. delphi中String 和 动态静态数组

    默认string类型为ansiString:有编译开关控制 shortString: strShort : shortString; strShort 大小256字节,可根据sizeof()计算出,s ...

  7. Cookie 入门

    位于 javax.servlet.http 包下 1. HTTP 协议与 Cookie 关于 Cookie Cookie 是 HTTP 协议制定的!先由服务器保存 Cookie 到浏览器, 在下次浏览 ...

  8. flannel相关资料链接

    1.DockOne技术分享(十八):一篇文章带你了解Flannel http://dockone.io/article/618 2.理解Kubernetes网络之flannel网络http://ton ...

  9. 目标检测之R-FCN

    R-FCN:Object Detection via Region-based Fully Convolutional Networks R-FCN的网络结构 一个Base的convolutional ...

  10. 【转载】在Jersey JAX-RS 处理泛型List等Collection

    在Java中,从1.5开始,我们就可以使用泛型了(generic),这看上去很像C++ Template,但是实际上它们是不同的.在这里我不想过多的描述细节,你可以从Google上搜索一下. 但是,泛 ...