¿Cómo obtener referencia a un botón creado en un cuadro de diálogo personalizado, utilizando un diseño xml?

Tengo una Actividad en la que el usuario puede actualizar una información específica haciendo clic en un botón cerca de una etiqueta. Este botón activa un cuadro de diálogo donde tengo algunos campos para obtener la entrada del usuario y un botón para finalizar la edición.

Mi problema es que no puedo obtener una referencia al botón declarar en el diseño xml específico del cuadro de diálogo. La referencia del botón devuelve nulo. Siga algunos fragmentos de código para ilustrar.

El botón que activa el evento para construir el diálogo se declara como una variable de instancia en la actividad de la siguiente manera:

private Button bConfigurarCarro;

que el método onCreate:

bConfigurarCarro = (Button)findViewById(R.id.bConfigurarCarro);
 bConfigurarCarro.setOnClickListener(configuraCarroListener);

esto activa correctamente el evento para crear el diálogo:

protected OnClickListener configuraCarroListener = new OnClickListener(){
public void onClick(View v) {
showDialog(CARRO_DIALOG_ID);
Log.d(TAG, "Executando evento do botão de configuração de carro no abastecimento.");
            }
        };

que crear el diálogo Invalida el método onCreateDialog de esta manera:

@Override
protected Dialog onCreateDialog(int id) {
  switch (id) {
    case TIME_DIALOG_ID:
        return new TimePickerDialog(this, mTimeSetListener, hora, minuto, false);
    case DATE_DIALOG_ID:
        return new DatePickerDialog(this, mDateSetListener, ano, mes, dia);
    case CARRO_DIALOG_ID:
        Log.d(TAG, "Criando dialog de cadastro de carro.");
        dialogCarro = new Dialog(this);
        dialogCarro.setContentView(R.layout.novo_carro_dialog);
        bSalvarCarro = (Button)findViewById(R.id.botaoSalvarCarro);
        bSalvarCarro.setOnClickListener(salvarCarroListener);
        dialogCarro.setTitle("Carro");
        dialogCarro.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
        Log.d(TAG, "Dialog de cadastro de carro criado retornando...");
        return dialogCarro;
    }
        return null;
}

La línea específica donde se dispara el NullPointer es aquella en la que después de intentar obtener la referencia del botón anterior, intento establecer setOnClickListener.

bSalvarCarro = (Button)findViewById(R.id.botaoSalvarCarro);
bSalvarCarro.setOnClickListener(salvarCarroListener);

El bSalvarCarro es nulo.

El diseño xml para el cuadro de diálogo que trato de configurar arriba usando la línea de código:

dialogCarro.setContentView(R.layout.novo_carro_dialog);

¿Es este (novo_carro_dialog.xml):

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" android:layout_height="fill_parent">
            <TableRow>
                <TextView android:id="@+id/marcaCarro"
                    android:layout_width="wrap_content" android:layout_height="wrap_content" 
                    android:text="@string/marcaCarro"/>
                <EditText android:id="@+id/tMarcaCarro" android:singleLine="true" android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:width="130px"/>
            </TableRow>
            <TableRow>
                <TextView android:id="@+id/nomeCarro"
                    android:layout_width="wrap_content" android:layout_height="wrap_content" 
                    android:text="@string/nomeCarro"/>
                <EditText android:id="@+id/tNomeCarro" android:singleLine="true" android:layout_width="fill_parent"
                android:layout_height="wrap_content"/>
            </TableRow>
            <TableRow>
                <TextView android:id="@+id/anoCarro"
                    android:layout_width="wrap_content" android:layout_height="wrap_content" 
                    android:text="@string/anoCarro"/>
                <EditText android:id="@+id/tAnoCarro" android:singleLine="true" android:layout_width="fill_parent"
                android:numeric="integer" android:maxLength="4" android:layout_height="wrap_content" />
            </TableRow>
            <TableRow>
                <TextView android:id="@+id/modeloCarro"
                    android:layout_width="wrap_content" android:layout_height="wrap_content" 
                    android:text="@string/modeloCarro"/>
                <EditText android:id="@+id/tModeloCarro" android:singleLine="true" android:layout_width="fill_parent"
                android:layout_height="wrap_content" />
            </TableRow>
            <Button android:id="@+id/botaoSalvarCarro" android:layout_width="wrap_content"
                    android:layout_height="wrap_content" android:text="@string/bSalvarCarro" />
</TableLayout>

Como puede ver, el botón se declara con el id botaoSalvarCarro, pero intentar obtener una referencia devuelve nulo. Estoy un poco confundido por esto, como si sacara la línea que establece al oyente, el diálogo se muestra correctamente, así que. ¿Cómo obtengo la referencia a este botón correctamente?

Respuestas a la pregunta(2)

Su respuesta a la pregunta