android中的java.lang.IndexOutOfBoundsException
我在android中有2个arraylist 数组列表名称;尺寸为5的 arraylistmobile;尺寸为2的 及 名称:{A,B,C,D,E}强> Mobile:{4,2}强> 这意味着只有两个人有手机号码 在这里,我运行了5次循环,但我遇到了java.lang.IndexOutOfBoundsException,我知道mobile并没有所有的5项,所以它发生了 但是如何处理这个异常呢 我分别在textview和2个mobile中显示5个名称,并通过catch块上的on异常、IndexOutOfBoundsException显示移动隐藏的其他3个textviewandroid中的java.lang.IndexOutOfBoundsException,java,android,arraylist,Java,Android,Arraylist,我在android中有2个arraylist 数组列表名称;尺寸为5的 arraylistmobile;尺寸为2的 及 名称:{A,B,C,D,E} Mobile:{4,2} 这意味着只有两个人有手机号码 在这里,我运行了5次循环,但我遇到了java.lang.IndexOutOfBoundsException,我知道mobile并没有所有的5项,所以它发生了 但是如何处理这个异常呢 我分别在textview和2个mobile中显示5个名称,并通过catch块上的on异常、IndexOutOfB
try{
for(int i=0; i< Name.size(); i++){
name.setText(Name.get(i).toString);
if(Mobile.get(i)!=null){
mobile.setText(Mobile.get(i).toString);
}else{
mboile.setVisibility(View.GONE);
}
}
}catch (Exception e) {
e.printStackTrace();
}
试试看{
对于(int i=0;i
这将失败
if(Mobile.get(i)!=null){
当i
大于长度时
看
抛出:IndexOutOfBoundsException-如果索引超出范围
(索引<0 | |索引>=size())
您必须检查Mobile是否在位置i处有元素。 如果他的
大小
大于i,则为
for (int i = 0; i < Name.size(); i++){
name.setText(Name.get(i).toString);
if (i < Mobile.size()) {
mobile.setText(Mobile.get(i).toString);
} else {
mobile.setVisibility(View.GONE);
}
}
for(int i=0;i
注意:格式化您的问题,使其更易于阅读。了解
尝试捕获块
您迭代大小为5的名称列表,但尝试从大小为2的移动设备获取对象