¿Cómo programar programáticamente una actividad para que sea como un diálogo?

Pregunta

¿Cómo se hace programáticamente (sin tocar elAndroidManifext.xml) establece el tema de unActivity para que parezca un diálogo?

Nota: estoy de acuerdo con modificar elAndroidManifext.xml siempre y cuando no sea necesario modificarlo para cambiar entre hacer que parezca una actividad normal o un diálogo.

Lo que he probado hasta ahora

Intenté lo siguiente segúnesta respuesta de stackoverflow:

public class DialogActivity extends Activity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        setTheme(android.R.style.Theme_DeviceDefault_Dialog);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog);
        Log.d(TAG,"Build.VERSION.SDK_INT: "+Build.VERSION.SDK_INT); // 23
    }
}

Pero terminaoscureciendo todo en el fondo.

yo también viesta respuesta de stackoverflow, y probé:

public class DialogActivity extends Activity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        setTheme(android.R.style.Theme_DeviceDefault_Dialog);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog);
        getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    }
}

pero termina haciendotodo negro.

¿Qué hacer? Gracias.

Respuestas a la pregunta(3)

Su respuesta a la pregunta