0

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;
}
4

3 に答える 3

1

alJson.size() が 0
でないことを確認し、alJson.size() と位置をログに記録して、これらの値に問題があるかどうかを確認してください

于 2012-06-27T13:39:10.867 に答える
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
}
于 2012-06-27T13:47:03.267 に答える