04-26 11:46:00.818: E/AndroidRuntime(3466): FATAL EXCEPTION: main
04-26 11:46:00.818: E/AndroidRuntime(3466): java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
04-26 11:46:00.818: E/AndroidRuntime(3466):  at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at java.util.ArrayList.get(ArrayList.java:304)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.widget.HeaderViewListAdapter.isEnabled(HeaderViewListAdapter.java:164)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.widget.ListView.dispatchDraw(ListView.java:3138)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.View.draw(View.java:11158)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.widget.AbsListView.draw(AbsListView.java:3419)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2991)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.View.draw(View.java:11056)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2991)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.View.draw(View.java:11056)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.widget.FrameLayout.draw(FrameLayout.java:462)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2991)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.drawChild(ViewGroup.java:2989)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2593)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.View.draw(View.java:11056)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.widget.FrameLayout.draw(FrameLayout.java:462)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2145)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewRootImpl.draw(ViewRootImpl.java:2026)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1634)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.os.Looper.loop(Looper.java:137)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at android.app.ActivityThread.main(ActivityThread.java:4441)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at java.lang.reflect.Method.invokeNative(Native Method)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at java.lang.reflect.Method.invoke(Method.java:511)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
04-26 11:46:00.818: E/AndroidRuntime(3466):  at dalvik.system.NativeStart.main(Native Method)上面是错误信息,下面是获取网络图片的方法/***
 * @方法说明 根据图片路径,得到图片!
 * @param url
 * @return Bitmap
 */
public Bitmap getBitmapImage(String url)
{
Bitmap bitmap = null;
InputStream in = null;
BufferedInputStream bis = null;
;
try
{
in = GetInputStream.getInputStream(url);
bis = new BufferedInputStream(in);
bitmap = BitmapFactory.decodeStream(bis);
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
if (in != null)
{
try
{
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
if (bis != null)
{
try
{
bis.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
return bitmap;
}以下是使用代码,在组装ListView的数据源//如果网络图片路径不为空,则进行网络加载,否则使用本地图片
if (null != imgSynopsisImagePath)
{
Bitmap bitmap = getBitmapImage(imgSynopsisImagePath);
Drawable drawable = new BitmapDrawable(bitmap);
map.put("ItemImage",drawable);
}
问题是:
我一下拉刷新它就报上面的异常信息,如果我去掉网络加载图片直接使用本地图片则不会。在2.3不会报错,4.0以上就报错,是怎么回事?网络图片AndroidBitmap

解决方案 »

  1.   

    java.lang.IndexOutOfBoundsException:哪边啊?我没看出来! 
      

  2.   

    应该是那个自定义的ListView的问题
      

  3.   

    我昨天查了一下,我在更新列表的时候实现将之前的数据源给clear了,代码如下:
    //将新获得的数据和原有的数据进行组合,剔除重复的数据,生成新的数据
    newsList = addDate(newsList, nbs);
    //将之前列表的数据清空
    mapList.clear();
    //重新给数据源赋值
    mapList.addAll(transNews(newsList));
    将mapList去掉就不会报错了
      

  4.   

    为什么clear一下就会出错了呢?
      

  5.   

    我昨天查了一下,我在更新列表的时候实现将之前的数据源给clear了,代码如下:
    //将新获得的数据和原有的数据进行组合,剔除重复的数据,生成新的数据
    newsList = addDate(newsList, nbs);
    //将之前列表的数据清空
    mapList.clear();
    //重新给数据源赋值
    mapList.addAll(transNews(newsList));
    将mapList去掉就不会报错了嗯 不错呀
      

  6.   

    我昨天查了一下,我在更新列表的时候实现将之前的数据源给clear了,代码如下:
    //将新获得的数据和原有的数据进行组合,剔除重复的数据,生成新的数据
    newsList = addDate(newsList, nbs);
    //将之前列表的数据清空
    mapList.clear();
    //重新给数据源赋值
    mapList.addAll(transNews(newsList));
    将mapList去掉就不会报错了嗯 不错呀可为什么clear就错了?郁闷
      

  7.   

    1.打断点调试,看是哪里出的问题。
    2.是自己写的类去继承BaseAdapter还是自己循环构建的Adapter,如果是自己循环构建的话可能你clear以后再次添加的数据量导致了数组越界。
      

  8.   

    我把clear()那个方法换成重新new一次,貌似不报错了,亲,试下