[android] 常用数据适配器SimpleAdapter

前端之家收集整理的这篇文章主要介绍了[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代码

 

  1. package com.tsh.myadapter;
  2. import java.util.ArrayList;
  3. java.util.HashMap;
  4. java.util.List;
  5. java.util.Map;
  6. android.app.Activity;
  7. android.os.Bundle;
  8. android.widget.ArrayAdapter;
  9. android.widget.ListView;
  10. android.widget.SimpleAdapter;
  11. public class MainActivity extends Activity {
  12. @Override
  13. protected void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.activity_main);
  16. ListView lv_list=(ListView) findViewById(R.id.lv_list);
  17. List<Map<String,Object>> data=new ArrayList<Map<String,Object>>();
  18. Map<String,Object> map1=new HashMap<String,Object>();
  19. map1.put("tv_name","电话");
  20. map1.put("iv_icon",R.drawable.ic_menu_call);
  21. Map<String,Object> map2=();
  22. map2.put("tv_name","短信");
  23. map2.put("iv_icon"();
  24. map3.put("tv_name","摄像");
  25. map3.put("iv_icon"new SimpleAdapter(this,R.layout.list2_item,new String[]{"tv_name","iv_icon"},1)">new int[]{R.id.tv_name,R.id.iv_icon}));
  26. }
  27. }

 

猜你在找的Android相关文章