• 【项目笔记】【bug】数组空指针异常


     1 package com.example.googleplay.ui.holder;
     2 
     3 import java.util.ArrayList;
     4 
     5 import android.view.View;
     6 import android.widget.ImageView;
     7 
     8 import com.example.googleplay.R;
     9 import com.example.googleplay.http.HttpHelper;
    10 import com.example.googleplay.utils.BitmapHelper;
    11 import com.example.googleplay.utils.UIUtils;
    12 import com.lidroid.xutils.BitmapUtils;
    13 
    14 public class HomeScreenHolder extends BaseHolder<ArrayList<String>> {
    15 
    16     private ImageView[] mImages = null;
    17     private BitmapUtils mBitmapUtils;
    18 
    19     @Override
    20     public View initView() {
    21         View view = UIUtils.inflate(R.layout.layout_detail_picinfo);
    22 
    23         mImages = new ImageView[5];
    24         mImages[0] = (ImageView) view.findViewById(R.id.iv_pic1);
    25         mImages[1] = (ImageView) view.findViewById(R.id.iv_pic2);
    26         mImages[2] = (ImageView) view.findViewById(R.id.iv_pic3);
    27         mImages[3] = (ImageView) view.findViewById(R.id.iv_pic4);
    28         mImages[4] = (ImageView) view.findViewById(R.id.iv_pic5);
    29         
    30         mBitmapUtils = BitmapHelper.getBitmapUtils();
    31         return view;
    32     }
    33 
    34     @Override
    35     public void refreshView(ArrayList<String> data) {
    36         
    37         for (int i = 0; i < mImages.length; i++) {
    38             if(i>=data.size()){
    39                 //多余的图片布局需要隐藏
    40                 mImages[i].setVisibility(View.GONE);
    41             }else {
    42                 //要显示的图片
    43                 mImages[i].setVisibility(View.VISIBLE);
    44                 mBitmapUtils.display(mImages[i], HttpHelper.URL + "image?name=" + data.get(i));
    45             }
    46         }
    47     }
    48 }

    在refreshView这个方法中mImages报空指针异常,其实是第16行的原因,数组赋值只能一次赋值,赋值之后再赋值无效,应该写成

    1      private ImageView[] mImages;

    但是可以给数组的每个元素再次赋值。

  • 相关阅读:
    (转)Paint类的主要方法介绍
    (转)实时对讲机
    (转)Android:Layout_weight的深刻理解
    好的网址
    自定义控件模板,不用依赖属性---------------------WPF
    asyns和await实现传统的异步---------C#
    线程访问wpf的控件(与winform有差异)---------------WPF
    C#多线程之Task------------ C#
    换肤功能的实现-------------WPF
    访问嵌入的资源----图片实例-------C#
  • 原文地址:https://www.cnblogs.com/johnsonwei/p/5674192.html
Copyright © 2020-2023  润新知