arylylist中的索引超出范围的异常

时间:2012-06-27 13:36:24

标签: android exception arraylist

我正在开发一个应用程序,我在其中解析了公共facebook个人资料的Json。我得到了imageurl的String并将它们保存到ArrayList中,然后在listView中实现。一切都很顺利,但有时我的应用程序崩溃是因为“数组索引超出范围”或“内存空间异常”。无法解决此问题。帮帮我。提前谢谢。

我也附上了我的代码。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = View.inflate(SocialActivity.this, R.layout.facebook_row, null);
    ImageView iv_user = (ImageView)row.findViewById(R.id.iv_user_pic);
    TextView tv_title, tv_description, tv_time;
    tv_title = (TextView)row.findViewById(R.id.tv_title);
    tv_description = (TextView)row.findViewById(R.id.tv_discription);
    tv_time = (TextView)row.findViewById(R.id.tv_time);
    Button btn_count = (Button)row.findViewById(R.id.btn_arrow);
    //bitmap = DownloadImage(alJson.get(position).strPicUrl);
    tv_title.setText(alJson.get(position).strName);
    tv_description.setText(alJson.get(position).strMessage);
    tv_time.setText(alJson.get(position).strDate);
    btn_count.setText(alJson.get(position).strCount);
    if((alJson.get(position).strPicUrl).equals(null){
        iv_user.setBackgroundResource(R.drawable.contact_img);
    } else{
        iv_user.setImageBitmap(al_bitmap.get(position));
    }
    return row;
}

3 个答案:

答案 0 :(得分:1)

确保alJson.size()不是0
并尝试记录alJson.size()和位置以查看这些值是否有问题

答案 1 :(得分:0)

也许你的ArrayList alJson可能是空的,所以在使用之前请检查:

int listsize = alJson.size();
if(listsize>=0 && listsize<=position)
{
    tv_title.setText(alJson.get(position).strName);
    tv_description.setText(alJson.get(position).strMessage);
    tv_time.setText(alJson.get(position).strDate);
    btn_count.setText(alJson.get(position).strCount);

    if((alJson.get(position).strPicUrl).equals("null"){
     iv_user.setBackgroundResource(R.drawable.contact_img);
    }
    else{

    iv_user.setImageBitmap(al_bitmap.get(position));

    }
}
else
{
 //DO SOME CODE HERE
}

答案 2 :(得分:0)

使位置变量最终解决了我的问题

public View getView(final int position, View convertView, ViewGroup parent)