我在android中有2个arraylist。
ArrayList名称;大小为5
ArrayList Mobile;大小为2
和
姓名:{A,B,C,D,E};
移动:{4,2};
这意味着只有两个人有手机号码。
在这里,我运行循环5次,但是我遇到了 java.lang.IndexOutOfBoundsException ,我知道移动设备没有全部5次重复,所以它发生了。
但是如何处理这个异常。
我在textview中显示五个名称,在移动隐藏中显示2个移动相应和另外3个textview,通过catch块上的异常,IndexOutOfBoundsException。
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();
}
答案 0 :(得分:3)
您必须检查Mobile是否在位置i处有元素。
如果他的size
大于我,那就有了。
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);
}
}
注意:格式化您的问题,以便更容易阅读。
答案 1 :(得分:1)
这将失败
if(Mobile.get(i)!=null){
当i
大于长度
请参阅javadocs
抛出:IndexOutOfBoundsException - 如果索引超出范围 (index&lt; 0 || index&gt; = size())