zoukankan      html  css  js  c++  java
  • [android] 常用数据适配器SimpleAdapter

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

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

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

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

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

    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}));
        }
    
    }
  • 相关阅读:
    AngularJS实现跨域请求
    从古代名著看领导与被领导的艺术
    关于学习视频教程的反思之中的一个
    关于tcp中time_wait状态的4个问题
    AjaxPro因为汉字文件夹引发的IE兼容性问题
    MySQL无法重启问题解决Warning: World-writable config file ‘/etc/my.cnf’ is ignored
    安全运维之:Linux系统账户和登录安全
    mongodb导入导出备份恢复
    mongodb数据库备份恢复
    mongodb
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5267412.html
Copyright © 2011-2022 走看看