Android错误:抛出NullPointerException

时间:2015-02-14 22:59:42

标签: java android nullpointerexception onclick onclicklistener

我的代码由一个XML网格视图组成,其中64个图像视图以棋盘图案排列。我的java应该监视那些带有实际图像的那些imageViews的点击,然后执行提供的代码。

然而,在运行时,我的模拟器向我提供了一个对话框,说“不幸的是,棋盘停止工作”,而logcat正在抛出NullPointerException,如下所示:java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.app.Activity.findViewById(int)' on a null object reference

我不确定null的生成位置。我知道我正在检查null,但我不知道这是如何产生错误的。

import android.app.Activity;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import android.view.View.OnClickListener;


public class chessboard extends ActionBarActivity {


    public Activity board;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.board);

        final ImageView block2 = (ImageView) board.findViewById(R.id.block2);
        block2.setClickable(true);
        block2.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    if (block2.getTag() != (null)) {
                        Toast.makeText(getBaseContext(), "Check", Toast.LENGTH_LONG).show();

                    }
                }
            });

    }

1 个答案:

答案 0 :(得分:0)

当您在findViewById变量上致电board时,boardnull

如果更改此行

final ImageView block2 = (ImageView) board.findViewById(R.id.block2);

到这个

final ImageView block2 = (ImageView) findViewById(R.id.block2);

你不会得到NullPointerException

此外,不需要此代码

public Activity board;

由于您通过致电setContentView来扩充您的布局,并且可以直接从您的Activity

获取您的参考资料