我正在开发一个应用程序,我在其中解析了公共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;
}
答案 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)