首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SimpleAdapter简单用法

SimpleAdapter简单用法

作者头像
苦咖啡
发布2018-05-08 17:09:20
8370
发布2018-05-08 17:09:20
举报
文章被收录于专栏:我的博客我的博客我的博客

官方文档:

这是一个简单的适配器,可以将静态数据映射到XML文件中定义好的视图. 你可以将 Maps 的 ArrayList 指定为用于列表的数据. ArrayList 中的每一项对应列表中的一行. Maps 中包含用于一行的数据. 你也可以指定 XML 文件,其中定义了用于显示行的视图, 通过 Map 的关键字映射到指定的视图.绑定数据到视图分两个阶段. 首先,如果 SimpleAdapter.ViewBinder 是有效的,则调用 setViewValue(android.view.View, Object, String) 方法. 如果返回值为真,则执行绑定.如果返回值为假,则按以下顺序绑定视图:实现了 Checkable 的视图(例如 CheckBox),期望绑定值是布尔类型. TextView,期望绑定值是字符串类型,通过调用 setViewText(TextView, String) 绑定. ImageView,期望绑定值是资源 ID 或者一个字符串,通过调用 setViewImage(ImageView, int) 或 setViewImage(ImageView, String)绑定. 如果没有合适的绑定发生,将会抛出 IllegalStateException 异常.

Simple.java(activity代码)

package com.phpfs.simple.adapter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class Simple extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.simple);
		
		ListView lv = (ListView) findViewById(R.id.listview1);
        String[] from = { "name", "image", "but" };
        int[] to = { R.id.text, R.id.image, R.id.button };
        List> list = new ArrayList>();
        for (int i = 0; i < 5; i++) {
            Map m = new HashMap();
            m.put("name", "Text" + i);
            m.put("image", R.drawable.f001);
            m.put("but", "Button" + i);
            list.add(m);
        }
        // 额外增加一行
        Map n = new HashMap();
        n.put("but", "Button last");
        n.put("image", R.drawable.ic_launcher);
        list.add(n);
        SimpleAdapter adapter = new SimpleAdapter(
        		this,//SimpleAdapter关联的View的运行环境 
        		list, //一个Map组成的List。在列表中的每个条目对应列表中的一行,每一个map中应该包含所有在from参数中指定的键
        		R.layout.item, //一个定义列表项的布局文件的资源ID。布局文件将至少应包含那些在to中定义了的ID
        		from, //一个将被添加到Map映射上的键名
        		to//将绑定数据的视图的ID,跟from参数对应
        		);
        lv.setAdapter(adapter);
	}

}

Simple对应视图simple.xml代码

ListView一行视图item.xml代码

说明:item.xml中button中有这样一行代码,

android:focusable=”false”

这样的好处是button不会抢占一行的点击区域
显示效果如下:
SimpleAdapter简单用法
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013年11月7日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档