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

求看下哪里出错了,手机运行内容显示不出来

package com.songbuqi.skyking.listview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.SimpleAdapter;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity   {

      private ListView listview;
      private ArrayAdapter arrayAdapter;
      private SimpleAdapter simpleAdapter;
      private List<Map<String,Object>> datalist;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listview  = (ListView) findViewById(R.id.listview1);
       // String[] data={"宋天健是罗铮的爸爸","宋天健是罗铮的爸爸","宋天健是罗铮的爸爸","宋天健是罗铮的爸爸"};
       // arrayAdapter =new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data);
       // listview.setAdapter(arrayAdapter);
        simpleAdapter = new SimpleAdapter(this,getdata(), R.layout.item, new String[]{"right","home"},new int[]{R.id.right,R.id.home});
        listview.setAdapter(simpleAdapter);
    }
    private List<Map<String,Object>> getdata(){

        for(int i=1;i<20;i=i++) {

            Map<String,Object> map = new HashMap<String,Object>();
            map.put("home",R.drawable.ic2);
            map.put("right",R.id.right);


        }


        return datalist;
    }
}


正在回答

5 回答

public class MainActivity extends AppCompatActivity {
    private ListView listView;
    private ArrayList<Map<String, Object>> datalist;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取控件实例
        listView = (ListView) findViewById(R.id.list_view);
        //创建dataList的实例
        datalist = new ArrayList<Map<String, Object>>();
        SimpleAdapter simpleAdapter = new SimpleAdapter(this, getdata(), R.layout.item,
                new String[]{"home", "right"},
                new int[]{R.id.item_image, R.id.item_text});
        listView.setAdapter(simpleAdapter);
    }
    //设置数据源
    private ArrayList<Map<String,Object>> getdata(){
        for (int i=1;i<=20;i++){
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("home", R.drawable.ic_launcher);
            map.put("right", "测试");
            datalist.add(map);
        }
        return datalist;
    }
}


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

skyking524 提问者

效果出来了,但是图片又出不来。
2016-10-01 回复 有任何疑惑可以回复我~
#2

小罗希冀 回复 skyking524 提问者

不会吧,我我发上去的代码自己试过,图片文字都出来了,你要不对照一下我的代码,看看有什么不同吧
2016-10-01 回复 有任何疑惑可以回复我~

我找到原因了,你的思路没有,就是for循环的最后一个条件写错了,不是i=i++,是i++

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

为什么你设置simpleAdapter的时候,new int[]{}用的是R.id.right,设置数据源,“right”键对应的值也是R.id.right?


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

请问你的R.id.right是是什么?是一串字符串?


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

你好,你的程序中有两个地方你没有注意到

    1.你的dataList只是进行了定义,却忘记创建实例。你可以添加如下如遇:

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

    2.在你的getData()方法的循环内没有把每次循环创建出来的Map对象添加到dataList当中,你可以在循环的最后加上这样一条语句:

        dataList.add(map);

这样子应该可以解决你内容显示不出来的问题,希望对你有用。

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

小罗希冀

“如遇”二字打错,实为“语句”
2016-10-01 回复 有任何疑惑可以回复我~
#2

skyking524 提问者 回复 小罗希冀

后面我自己找出来了,但是还是显示不出来
2016-10-01 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

求看下哪里出错了,手机运行内容显示不出来

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