先看一下成果吧(图片有点Low,用的系统自带的):


    SimpleAdapter的用法比ArrayAdapter还要复杂一点,毕竟功能更强大嘛。先看SimpleAdapter的构造方法:

public SimpleAdapter(Context context, List<? extends Map> data, int resource, String[] from, int[] to) {}

详细说一下方法中的5个参数:

* Context:上下文。
* data:数据源(List>data)一个有Map组成的集合。每一个Map都会对应ListView列表中的一行,每一个Map(键-值对)中的键必须包含所有在from参数中所指定的键。
*resource: ListView中每一项的布局文件ID。
*from:Map中的键名。
*to:绑定item.xml文件中的view控件ID,与from,Map的键形成对应。

    data数据源我专门用ItemData类生成:

package com.engineer.shizhibin.tvshow;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * Created by 13922 on 2018/6/17. */public class ItemData {    private static String[] mDataList = new String[] {            "CCTV1综合","CCTV2财经","CCTV3综艺","CCTV4中文国际","CCTV5","CCTV6","CCTV7","CCTV8",            "CCTV9","CCTV10科教","CCTV11戏曲","CCTV12社会与法","CCTV13新闻"    };    private static String[] mUrlList = new String [] {};    private static List>datalist;    public static String[] getmDataList() {        return mDataList;    }    public static List> getDataLIst(String...from) {        datalist = new ArrayList>();        for(int i=0;imap = new HashMap();            map.put(from[0],R.mipmap.ic_launcher_round);            map.put(from[1],mDataList[i]);            datalist.add(map);        }        return datalist;    }}

    每一个Item的布局,需要自定义item.xml:(注意id要和SimpleAdapter构造方法中的to参数对应)

<?xml version="1.0" encoding="utf-8"?>        

    在MainActivity中创建Adapter绑定ListView:

package com.engineer.shizhibin.tvshow;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.SimpleAdapter;import java.util.ArrayList;import java.util.List;import java.util.Map;public class MainActivity extends AppCompatActivity {    private ListView mListview;    private SimpleAdapter mAdpater;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mListview = (ListView)this.findViewById(R.id.list);        /**         * 参数1 上下文         * 参数2 当前listview加载的每一个列表项对应的布局文件         * 参数3 数据源         */        String[] list = ItemData.getmDataList();        List> data = new ArrayList>();        data = ItemData.getDataLIst("pic","text");        /**         * SimpleAdapter的五个参数:         * Context:上下文         * data:数据源(List>data)一个有Map组成的集合         *       每一个Map都会对应ListView列表中的一行         *       每一个Map(键-值对)中的键必须包含所有在from参数中所指定的键         *resource: ListView中每一项的布局文件ID         *from:Map中的键名         *to:绑定item.xml文件中的view控件ID,与from,Map的键形成对应         */        mAdpater = new SimpleAdapter                (MainActivity.this,data,R.layout.item,new String[]{"pic","text"},new int[]{R.id.pic,R.id.text});        mListview.setAdapter(mAdpater);    }}


更多相关文章

  1. 文章【Android(安卓)的视频编码 H263 MP4V H264】的代码实现
  2. Android(安卓)解决 adapter.notifyDataSetChanged() 不起作用
  3. Android(安卓)WebView 与 原生的交互
  4. Android(安卓)的两种Menu (菜单)
  5. Android客户端调用Asp.net的WebService
  6. Android(安卓)自定义Galley中图片未居中显示问题
  7. Android(安卓)自定义viewpager选中点
  8. android 百度推送的集成
  9. Android官方命令深入分析之dmtracedump

随机推荐

  1. Android 学习 之 资源文件 动态修改strin
  2. Android 自动开关机
  3. android 常用系统信息获取总结
  4. android查看SQLite数据库linux命令
  5. 如何单独build android ap (以launcher为
  6. Android中的Uri
  7. android HttpClient get请求与post请求工
  8. AndroidManifest中设置android:allowBack
  9. Android应用程序组成部分
  10. Android中使用网络技术