Как избежать NullPointerException при использовании пользовательских видов или SurfaceViews - PullRequest
1 голос
/ 12 июня 2009

Я создал пользовательский 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.

В упражнении я связал элементы управления следующим образом:

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 Ответ

2 голосов
/ 14 июня 2009

убедитесь, что вы инициализируете представление в onFinishInflate, а не в конструкторе. код предварительного просмотра макета может инициализировать ваш элемент управления с помощью другого пути к коду.

...