android - 使用自定义 View 或 SurfaceView 时如何避免 NullPointerException

标签 android custom-controls nullpointerexception

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

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

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

在 Activity 中,我按以下方式绑定(bind)控件:

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);
}

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

最佳答案

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

关于android - 使用自定义 View 或 SurfaceView 时如何避免 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/985851/

相关文章:

java - 如何在不引起 CSS 警告的情况下在 JavaFX 2.2 中设置自定义控件的外观?

c# - 来自自定义控件的事件发送者

java - 替换 Arraylist 中的空值

android - findViewById 在膨胀后在自定义 View 中返回 null

android - 如何从字符串数组填充 Spinner

java - android studio 媒体播放器 null 对象引用

android - 在本地网络上与 Cordova 进行点对点通信

android - 如何实现类似谷歌地图地址搜索的搜索?

c# - 为什么 MouseMove 不会在自定义 FrameworkElement 上触发?

java - 切换到特定 fragment 会产生奇怪的 java.lang.NullPointerException