使用自定义视图或SurfaceView时如何避免NullPointerException

时间:2009-06-12 09:37:09

标签: android custom-controls nullpointerexception

我创建了一个名为SurfaceView的自定义CaptureView,并尝试将其添加到main.xml文件中:

<dev.recorder.client.CaptureView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/capturePreview"/>

该应用程序似乎工作正常,但如果我从main.xml选项卡切换到Eclipse中的布局,则会显示文本NullPointerException而不是布局预览。

在活动I中,按以下方式绑定控件:

setContentView(R.layout.main);

    bindControls();

private void bindControls()
{
    videoPreview = (CaptureView)findViewById(R.id.capturePreview);

    txtstatus = (TextView)findViewById(R.id.txtMode);
    txtTimer = (TextView)findViewById(R.id.txtTime);
}

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

确保在onFinishInflate中初始化视图而不是在构造函数中。 布局预览代码可能会通过不同的代码路径初始化您的控件。