BaseAdapter就Android应用程序中经常用到的基础数据适配器,它的主要用途是将一组数据传到像ListView、Spinner、Gallery及GridView等UI显示组件,它是继承自接口类Adapter。

class MyAdapter extends BaseAdapter {private LayoutInflater mInflater;private List> listData;// 存放 Title + itemprivate List> splitData; // 存放Titlepublic MyAdapter(Context context, List> listData,List> splitData) {this.mInflater = LayoutInflater.from(context);this.listData = listData;this.splitData = splitData;}public int getCount() {return listData.size();}public Object getItem(int position) {return listData.get(position);}public long getItemId(int position) {return position;}/** 是否是个分隔item */public boolean isEnabled(int position) {if (splitData.contains(listData.get(position))) {return false;}return super.isEnabled(position);}public View getView(final int position, View convertView, ViewGroup parent) {if (splitData.contains(listData.get(position))) {//如果数据里的内容包含Title信息的,就是Title信息了---- 用“list_items_tag”布局convertView = mInflater.inflate(R.layout.list_items_tag, null);} else {//如果数据里的内容没包含Title ---- 用“list_items”布局convertView = mInflater.inflate(R.layout.list_items, null);}TextView textView = (TextView) convertView.findViewById(R.id.itemTitle);textView.setText(listData.get(position).get("itemTitle"));return convertView;}}


public class MyListView5 extends Activity {// 存放( Title + item)private List> mylist = new ArrayList>();// 存放Titleprivate List> splitList = new ArrayList>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.groupview);ListView lv = (ListView) findViewById(R.id.MyListView);setData(); // 设置数据// 配置适配器MyAdapter adapter = new MyAdapter(this, mylist, splitList); // 布局里的控件id// 添加并且显示lv.setAdapter(adapter);}private void setData() {// 组织数据源Map mp = new HashMap();mp.put("itemTitle", "A");mylist.add(mp);// 存放( Title + item)splitList.add(mp);// 存放Titlefor (int i = 0; i < 3; i++) {Map map = new HashMap();map.put("itemTitle", "文章1-" + i);mylist.add(map);// 存放( Title + item)}mp = new HashMap();mp.put("itemTitle", "B");mylist.add(mp);// 存放( Title + item)splitList.add(mp);// 存放Titlefor (int i = 0; i < 6; i++) {Map map = new HashMap();map.put("itemTitle", "文章2-" + i);mylist.add(map);// 存放( Title + item)}}}


更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. android实践项目一实现简单的验证码和spinner下拉选项效果
  4. 【startActivityForResult】Android(安卓)Activity回传数据
  5. Android打开/关闭数据流量
  6. exp: 修改Android中strings.xml文件, 动态改变数据
  7. Android--WebView+HTML+Javascript
  8. Android网络状态获取类 在api 29中 NetworkInfo Deprecated
  9. Android(安卓)中数据库查询方法 query() 中的 select

随机推荐

  1. Android中json操作数据的使用
  2. View的XML 属性大全(官方文档)
  3. android常用语句
  4. Android反射工具类ReflectUtil
  5. Android(安卓)Hook学习之ptrace函数的使
  6. Android常用mimetype类型
  7. Android日期对话框
  8. 【Android】共享APK中的资源文件
  9. android dialog 显示时弹出输入法
  10. android SlidingDrawer