繁体   English   中英

android中的java.lang.IndexOutOfBoundsException

[英]java.lang.IndexOutOfBoundsException in android

我在Android中有2个arraylist。

ArrayList名称; 5号

ArrayList Mobile; 2号

名称:{A,B,C,D,E};

手机:{4,2};

这意味着只有两个人拥有手机号码。

在这里,我运行了5次循环,但是遇到了java.lang.IndexOutOfBoundsException ,我知道mobile并没有全部5个项目,因此它发生了。

但是如何处理这个异常。

我通过在catch块上的异常,IndexOutOfBoundsException,在textview和2个mobile中分别显示五个名称,并在移动隐藏中显示其他3个textview。

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();
                }

您必须检查Mobile是否在位置i处有元素。 它的size是否大于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);
    }
}

注意:格式化您的问题,以便于阅读。

这将失败

if(Mobile.get(i)!=null){

i大于长度时

javadocs

抛出:IndexOutOfBoundsException-如果索引超出范围(索引<0 ||索引> = size())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM