出现两套一样的图标,点击另外一套图标会崩溃
如图所示,我跟着视频敲的代码,但发现出现了两套图标。

上面这套图标可以正常演示,但一旦点击下面这套重复的图标的话,程序崩溃。
查看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();
}
}