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

dataList.add(map); 这个报错

http://img1.sycdn.imooc.com//575591310001dc6613540954.jpg

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.SimpleAdapter;

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

public class MainActivity extends AppCompatActivity {

   private GridView gridView;
   private List<Map<String, Objects>> dataList;
   private int[] icon = {R.drawable.address_book, R.drawable.calendar, R.drawable.camera, R.drawable.clock
           , R.drawable.games_control, R.drawable.messenger, R.drawable.ringtone, R.drawable.settings
           , R.drawable.speech_balloon, R.drawable.weather, R.drawable.world, R.drawable.youtube};

   private String[] iconName = {"通讯录", "日历", "照相机", "时钟", "游戏", "短信", "铃声", "设置",
           "语音", "天气", "浏览器", "视频"};

   private SimpleAdapter adapter;

   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       gridView = (GridView) findViewById(R.id.gridView);

       /*
       * 1、准备数据源
       * 2、新建适配器(SimpleAdapter)
       * 3、GridView加载适配器
       * 4、GridView配置时间监听器(OnItemClickListener)
       * */
       dataList = new ArrayList<Map<String, Objects>>();

       getData();

       adapter = new SimpleAdapter(this, getData(), R.layout.item, new String[]{"image", "text"},
               new int[]{R.id.image, R.id.text});
       gridView.setAdapter(adapter);

   }

   public List<Map<String, Objects>> getData() {
       for (int i = 0; i < icon.length; i++) {
           Map<String, Object> map = new HashMap<String, Object>();

           map.put("image", icon[i]);

           map.put("text",iconName);

           dataList.add(map);

       }

       return dataList;
   }
}

正在回答

3 回答

 setContentView(R.layout.activity_main);    改成   setContentView(R.layout.main);

map.put("text",iconName);  改成  map.put("text",iconName[i]);

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

private List<Map<String, Objects>> dataList;   改成         private List<Map<String, Object>> dataList;   Objects多了个s

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

private List<Map<String, Objects>> dataList;

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

这两句都是Objects,下面map 定义的类型是Map<String, Object>

类型不对当然报错

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

举报

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

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

进入课程

dataList.add(map); 这个报错

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号