gridview的交换功能

时间:2014-12-11 20:04:01

标签: java android gridview onclicklistener

我有一个带有图像的网格视图,并希望在单击图像时允许交换。

这是在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

这是交换功能的第一行。可能有什么不对?

2 个答案:

答案 0 :(得分:0)

你确定bmparray [click]不会过度扩展数组大小吗?

还在OnClickListener中声明了“click”和“blank”变量。看起来你应该将那些作为参数传递给swap函数。通常你应该得到一个编译器错误。我猜测还有名为click和blank的全局变量。

答案 1 :(得分:0)

将交换函数中的代码带到调用交换函数的位置,为我修复了这个