这段代码为什么不能执行?报数组越界异常

MIdsummerReyi 2016-11-25 07:10:37
public class MainActivity extends Activity {
private GridView gview;
private GridView gview1;
private List<Map<String, Object>> data_list;
private List<Map<String, Object>> data_list1;
private SimpleAdapter sim_adapter;
private SimpleAdapter sim_adapter1;
private int[] icon = {R.drawable.myfriend, R.drawable.mybooklist, R.drawable.mycollection};
private int[] icon1 = {R.drawable.homepage_unselected,R.drawable.dynamic_unselected,
R.drawable.message_unselected,R.drawable.me_unselected};
private String[] iconname = {"好友列表", "我的订单", "我的收藏"};
private String[] iconname1 = {"首页","动态","消息","我"};
private ImageView imageView;
public Activity activity=this;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.choosepic);

imageView = (ImageView) findViewById(R.id.icon);
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
final String[] arr = {"拍照", "相册"}; // 弹出列表对话框
new AlertDialog.Builder(MainActivity.this).setTitle("请选择").setItems(arr, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == 0) {
FaceUtil.openCamera(activity);
}
if (which == 1) {
FaceUtil.choosePhoto(activity);
}
}
}).setNegativeButton("取消", null).create().show();
}
});

gview=(GridView) findViewById(R.id.gview);
gview1= (GridView) findViewById(R.id.gview1);
data_list=new ArrayList<>();
data_list1=new ArrayList<>();
getData();
getData1();
String[] from = {"icon", "iconname"};
String[] from1 = {"icon1","iconname1"};
int[] to = {R.id.imgview, R.id.iconname};
int[] to1 = {R.id.imgview1,R.id.iconname1};
sim_adapter=new SimpleAdapter(this,data_list, R.layout.view1, from, to);
sim_adapter1=new SimpleAdapter(this,data_list1,R.layout.view2,from1,to1);
gview.setAdapter(sim_adapter);
gview1.setAdapter(sim_adapter1);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case FaceUtil.REQUEST_PICTURE_CHOOSE:
FaceUtil.dealPic(activity,imageView,requestCode,resultCode,data);
break;
case FaceUtil.REQUEST_CAMERA_IMAGE:
FaceUtil.dealPic(activity,imageView,requestCode,resultCode,data);
break;
case FaceUtil.REQUEST_CROP_IMAGE:
FaceUtil.dealPic(activity,imageView,requestCode,resultCode,data);
break;
default:
break;
}
}

public List<Map<String, Object>> getData() {
for (int i = 0; i < icon.length; i++) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("icon", icon[i]);
map.put("iconname", iconname[i]);
data_list.add(map);
}
return data_list;
}
public List<Map<String, Object>> getData1() {
for (int i = 0; i < icon1.length; i++) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("icon1", icon1[i]);
map.put("iconname1", iconname1[i]);
data_list1.add(map);
}
return data_list1;
}


}
错误日志:
Process: com.example.admin.myapplication, PID: 2979
java.lang.ArrayIndexOutOfBoundsException: length=2; index=2
at android.widget.SimpleAdapter.bindView(SimpleAdapter.java:160)
at android.widget.SimpleAdapter.createViewFromResource(SimpleAdapter.java:126)
at android.widget.SimpleAdapter.getView(SimpleAdapter.java:114)
at android.widget.AbsListView.obtainView(AbsListView.java:2263)
at android.widget.GridView.onMeasure(GridView.java:1044)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1052)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:590)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291)
at android.view.View.measure(View.java:16497)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1940)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1137)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1319)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1024)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5694)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:544)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5045)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
...全文
306 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
蜡笔大太阳 2016-11-30
  • 打赏
  • 举报
回复
Log一下,,数组越界这种问题,很好解决
jiaweiQQQ 2016-11-27
  • 打赏
  • 举报
回复
顶顶 debug一下很好找的
YXTS122 2016-11-26
  • 打赏
  • 举报
回复
帮你顶顶帖。。。。。。。。。。。。。。。。
Coutel 2016-11-26
  • 打赏
  • 举报
回复
眼花了..数组越界异常就去看数组啊..实在不行挨个数组检查一下,也不是什么原因复杂的问题
magege2015 2016-11-26
  • 打赏
  • 举报
回复
数组越界异常其实挺好解决的
tcmakebest 2016-11-25
  • 打赏
  • 举报
回复
数组越界这种错误, 一调试就知道在哪里了,光看代码眼要看花的.

80,355

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧