我看不到java.lang.NullPointerException错误

时间:2016-01-13 09:54:25

标签: android

有人可以帮我吗?向我解释为什么这段代码是“java.lang.NullPointerException”错误。

final ImageButton sampleImageButton = (ImageButton) findViewById(R.id.btn_sample);

    final Dialog dd_dialog = new Dialog(MainActivity.this);
    dd_dialog.setContentView(R.layout.Sample_layout);
    dd_dialog.setTitle("Sample");
    dd_dialog.setCancelable(true);

sampleImageButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dd_dialog.show();
                }
            });

这是xml

<Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btn_sample"
        android:text="Sample"
        android:background="#4372AA"
        android:layout_marginRight="10dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:textColor="#FFFFFF"
        android:layout_marginTop="30dp"/>

3 个答案:

答案 0 :(得分:1)

问题在于你在xml布局中使用了按钮,在java文件中你声明了ImageButton,所以从ImageButton更改为Button。

更改此行
final ImageButton sampleImageButton = (ImageButton) findViewById(R.id.btn_sample);

final Button sampleImageButton = (Button) findViewById(R.id.btn_sample);

答案 1 :(得分:0)

在使用setContentView

之前,您似乎未使用findViewById设置活动视图

希望这有帮助。

答案 2 :(得分:0)

可能这一定是纠正:

final ImageButton sampleImageButton = (ImageButton) dd_dialog.findViewById(R.id.btn_sample);

下面加上这个
final Dialog dd_dialog = new Dialog(MainActivity.this);
dd_dialog.setContentView(R.layout.Sample_layout);