【学习笔记】【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;
时间: 2024-08-28 07:51:12

【学习笔记】【bug】数组空指针异常的相关文章

C和指针 学习笔记-3.数组与指针

数据名代表首地址 指向数组的指针 #include <stdio.h> extern void iterate(int *p); void main(){ int a[]={1,2,3,4,5}; iterate(a); } void iterate(int *p){ int i; for(i=0;i<5;i++){ printf("%d",*p++); } } 指向一维数组的指针 int (*p)[3] #include <stdio.h> void i

Swift学习笔记(12)--数组和字典的复制

Swift中,数组Array和字典Dictionary是用结构来实现的,但是数组与字典和其它结构在进行赋值或者作为参数传递给函数的时候有一些不同. 并且数组和字典的这些操作,又与Foundation中的NSArray和NSDictionary不同,它们是用类来实现的. 注意:下面的小节将会介绍数组,字典,字符串等的复制操作.这些复制操作看起来都已经发生,但是Swift只会在确实需要复制的时候才会完整复制,从而达到最优的性能. 字典的赋值和复制操作 每次将一个字典Dictionary类型赋值给一个

Swift学习笔记(5)--数组

数组的下标从0开始计数,相关方法属性涉及到下标时也从0开始计数 1.定义: //1.可变数组 var cityArray = ["Portland","San Francisco","Cupertino"] //2.不可变数组 let cityArray2 = ["Portland","San Francisco","Beijing"] //3.空数组 var animalArray =

JavaScript学习笔记:数组reduce()和reduceRight()方法

很多时候需要累加数组项的得到一个值(比如说求和).如果你碰到一个类似的问题,你想到的方法是什么呢?会不会和我一样,想到的就是使用for或while循环,对数组进行迭代,依次将他们的值加起来.比如: var arr = [1,2,3,4,5,6]; Array.prototype.sum = function (){ var sumResult = 0; for (var i = 0; i < this.length; i++) { sumResult += parseInt(this[i]);

es6学习笔记(2)数组(中)

接着上一篇,给大家再分享一些数组的其他方法.大家也可以去点击这里学习数组更多的方法 concat方法: 概述:    concat() 方法将传入的数组或非数组值与原数组合并,组成一个新的数组并返回. 参数: valueN:需要与原数组合并的数组或非数组值. 描述: concat 方法将创建一个新的数组,然后将调用它的对象(this 指向的对象)中的元素以及所有参数中的数组类型的参数中的元素以及非数组类型的参数本身按照顺序放入这个新数组,并返回该数组. concat方法并不修改调用它的对象(th

JavaScript新手学习笔记1——数组

今天,我复习了一下JavaScript的数组相关的知识,总结一下数组的API: 总共有11个API:按照学习的先后顺序来吧,分别是: ① toString()  语法:arr.toString(); 将数组转化为字符串,并且返回这个字符串,以逗号分隔:但是不改变原数组: 1 var arr=[1,2,3,4,5]; 2 var result=arr.toString(); 3 console.log(result); //1,2,3,4,5 4 console.log(arr); //[1,2,

数据结构学习笔记&mdash;&mdash;顺序数组1

线性表最简单的刚开始就是顺序存储结构,我是看着郝斌的视频一点一点来的,严蔚敏的书只有算法,没有具体实现,此笔记是具体的实现 为什么数据结构有ADT呢,就是为了满足数据结构的泛性,可以在多种数据类型使用 这里所说的数组并不是简单那种数组,这里所讲的是数组结构,就是在内存中是连续存储的,所以要先构造出一个这样的结构 typedef int ElemType; typedef struct { ElemType* elem; //数组结构中的数据区,可以是任何数据类型,常见的是结构体类型 int le

学习笔记----后缀数组

学习资料:IOI2009国家集训队论文--<后缀数组> 论文里面写的比较清晰了,但是代码里面没有解释,又从网上找到了一份代码的注释,解释的挺好的 地址:http://www.cnblogs.com/Lyush/p/3233573.html 这里是代码模板: 倍增算法实现的,效率很高. const int maxn = 10010; int wa[maxn], wb[maxn], wv[maxn], ws1[maxn]; int cmp(int *r, int a, int b, int l)

Java学习笔记:数组

package myjava; /**  * 数组  * @author Administrator  *  */ import java.util.*; public class Myarray { public static void main(String args[]) { // 数组排序 int array[] = { 1, 9, 4, 2, 8, 6, 7 }; Arrays.sort(array); // 数组输出 for (int item : array) { System.o

[前端JS学习笔记]JavaScript 数组

一.JavaScript数组的奇葩 大多数语言会要求数组的元素是同个类型, 但是JavaScript允许数组元素为多种类型. var arr = ["羽毛球", 666, {"json:":"666"}]; console.log(arr.length); 二.JavaScript 数组的两种声明 1.var arr = [元素]; var arr = ["坚持"]; 2.new Array(); 或者 var arr2 =