出现两套一样的图标,点击另外一套图标会崩溃
如图所示,我跟着视频敲的代码,但发现出现了两套图标。
上面这套图标可以正常演示,但一旦点击下面这套重复的图标的话,程序崩溃。
查看Logcat知道是数组越界,但没有很好的办法解决问题,我比对过视频的代码并没有什么不一样的地方。
以下是我的代码,请问各位前辈,是哪里出现了问题了吗?
package com.example.gridviewdemo; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.GridView; import android.widget.SimpleAdapter; import android.widget.Toast; public class MainActivity extends Activity implements OnItemClickListener{ private GridView gview; private List<Map<String,Object>>datalist; private SimpleAdapter adapter; private int[] icon = {R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher, R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher, R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher}; private String[] iconName = { "联系人", "日历", "照相机", "时钟", "游戏", "短信", "铃声", "设置","语音", "天气", "浏览器", "Youtube" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gview=(GridView) findViewById(R.id.gridview); datalist = new ArrayList<Map<String,Object>>(); getData(); adapter = new SimpleAdapter(this, getData(), R.layout.item, new String[]{"image","text"},new int[]{R.id.image,R.id.text}); gview.setAdapter(adapter); gview.setOnItemClickListener(this); } private List<Map<String,Object>> getData() { for(int i = 0;i<iconName.length;i++){ Map<String,Object>map = new HashMap<String,Object>(); map.put("image", icon[i]); map.put("text", iconName[i]); datalist.add(map); } return datalist; } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub Toast.makeText(this, "我是"+iconName[position], Toast.LENGTH_SHORT).show(); } }