为了账号安全,请及时绑定邮箱和手机立即绑定

求大神看看,为什么只出了一行数据?

public class SimpleAdapterActivity extends Activity {


private SimpleAdapter sim_adapter;

private List<Map<String,Object>>datalist;

private ListView lv; 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_listview);

lv=(ListView) findViewById(R.id.lv1);


//新建一个map键值对数据集合

datalist=new ArrayList<Map<String,Object>>();

//新建一个适配器  适配器加载数据源 

sim_adapter=new SimpleAdapter(this, getData(), R.layout.simple, new String[]{"img1","tv1"} ,new int[]{R.id.img1,R.id.tv1});

//视图加载适配器

lv.setAdapter(sim_adapter);

}

//数据源

private List<Map<String,Object>> getData(){

Map<String,Object> map=new HashMap<String, Object>();//创建一个键值对对象

map.put("img1", R.drawable.img1);//添加键-值对

map.put("tv1", "可爱萝莉");

map.put("img2", R.drawable.img2);

map.put("tv2", "功夫兔");

map.put("img3", R.drawable.img3);

map.put("tv3", "小狐狸");

map.put("img4", R.drawable.img4);

map.put("tv4", "元气少女");

datalist.add(map);

return datalist;

}

}


正在回答

3 回答

注意ArrayList<Map<String,Object>>(),里面的数据是应该是不同的map,你这个只是一个map

new String[]{"img1","tv1"}里是根据键名取出对应的值,正确的做法应该是遍历生成多个map:

public class SimpleAdapterActivity extends Activity {

    private SimpleAdapter sim_adapter;

    private List<Map<String, Object>> datalist;

    private ListView lv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (ListView) findViewById(R.id.lv1);
        // 新建一个map键值对数据集合
        datalist = new ArrayList<Map<String, Object>>();
        // 新建一个适配器 适配器加载数据源
        sim_adapter = new SimpleAdapter(this, getData(), R.layout.simple,
                new String[] { "img", "tv" },
                new int[] { R.id.img1, R.id.tv1 });
        // 视图加载适配器
        lv.setAdapter(sim_adapter);
    }
    // 数据源
    private List<Map<String, Object>> getData() {
        int[] pic = { R.drawable.img1, R.drawable.img2, R.drawable.img3,
                R.drawable.img4 };
        String[] st = { "可爱萝莉", "功夫兔", "小狐狸", "元气少女" };
        Map<String, Object> map = null;
        for (int i = 0; i < 4; i++) {
            map = new HashMap<String, Object>();// 创建一个键值对对象
            map.put("img", pic[i]);// 添加键-值对
            map.put("tv", st[i]);
            datalist.add(map);
        }
        return datalist;
    }

}

0 回复 有任何疑惑可以回复我~

我以为只要把数据放进去就行了,应该怎么遍历呢

0 回复 有任何疑惑可以回复我~

你是怎么遍历的?

【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第二门课(第1季)
  • 参与学习       111161    人
  • 解答问题       1457    个

本课程由浅入深地带您学会Android的常用控件的开发和使用

进入课程

求大神看看,为什么只出了一行数据?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信