我有一个带有图像的网格视图,并希望在单击图像时允许交换。
这是在onClickListener:
int blank = 0;
int click = position;
for (int i = 0; i < size; i++) {
if ((Integer)gridView.getChildAt(i).getTag() == size - 1) {
blank = i;
}
swap();
gridView.invalidateViews();
这是交换功能
private void swap() {
Bitmap temp = bmparray[click];
bmparray[click] = bmparray[blank];
bmparray[blank] = temp;
}
当我运行时,这就是logcat给我的东西:
致命的例外:主要 显示java.lang.NullPointerException
这是交换功能的第一行。可能有什么不对?
答案 0 :(得分:0)
你确定bmparray [click]不会过度扩展数组大小吗?
还在OnClickListener中声明了“click”和“blank”变量。看起来你应该将那些作为参数传递给swap函数。通常你应该得到一个编译器错误。我猜测还有名为click和blank的全局变量。
答案 1 :(得分:0)
将交换函数中的代码带到调用交换函数的位置,为我修复了这个