前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[android] 常用数据适配器SimpleAdapter

[android] 常用数据适配器SimpleAdapter

作者头像
唯一Chat
发布2019-09-10 11:08:20
6870
发布2019-09-10 11:08:20
举报
文章被收录于专栏:陶士涵的菜地陶士涵的菜地

当我们的列表包含图片和文字信息时,ArrayAdapter就无法实现了,使用SimpleAdapter,activity中findViewById()获取到ListView对象,调用ListView对象的setAdapter()方法,参数中传入SimpleAdapter对象。每一条数据是一个Map集合,所有的数据是一个List集合

new SimpleAdapter(context,data,resource,from,to)

context上下文,data数据集合List<Map<String,Object>> ,resuorce布局资源,from是String[]是数据中Map集合的key,to是int[]是布局文件中key对应的控件的资源id

Data数据,先new出来ArrayList 再new出来HashMap,调用HashMap对象的put()方法放入键值对,图标的放入资源id R.drawable.xxxx,调用ArrayList对象的add()方法加入Map对象

SimpleAdapter的源代码,构造函数,把data,resource,from,to对象赋值给成员变量,通过Context对象的getSystemService(Context.LAYOUT_INFLATER_SERVICE)方法获取LayoutInflater布局填充器对象赋值给成员变量。同样有getCount()方法和getView()方法,getView()中进行处理取出单条Map对象,根据to这个资源id的int[] 获取控件然后进行绑定。

activity代码:

package com.tsh.myadapter;

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.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView lv_list=(ListView) findViewById(R.id.lv_list);
        
         List<Map<String, Object>> data=new ArrayList<Map<String,Object>>();
         Map<String,Object> map1=new HashMap<String,Object>();
         map1.put("tv_name","电话");
         map1.put("iv_icon", R.drawable.ic_menu_call);
        
         Map<String,Object> map2=new HashMap<String,Object>();
         map2.put("tv_name","短信");
         map2.put("iv_icon", R.drawable.ic_menu_btn_add);
         
         Map<String,Object> map3=new HashMap<String,Object>();
         map3.put("tv_name","摄像");
         map3.put("iv_icon", R.drawable.ic_menu_camera);
         
         data.add(map1);
         data.add(map2);
         data.add(map3);
         
        lv_list.setAdapter(new SimpleAdapter(this, data, R.layout.list2_item, new String[]{"tv_name","iv_icon"}, new int[]{R.id.tv_name,R.id.iv_icon}));
    }

}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-03-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档