2012-01-21 22 views
6

He creado una alertdialog medida por el siguiente código:Android: AlertDialog personalizada

AlertDialog.Builder builder; 
AlertDialog alertDialog; 

LayoutInflater inflater = (LayoutInflater)ActivityName.this.getSystemService(LAYOUT_INFLATER_SERVICE); 
View layout = inflater.inflate(R.layout.custom_layout,(ViewGroup)findViewById(R.id.layout_root)); 

       builder = new AlertDialog.Builder(getParent()); 
       builder.setView(layout); 
       alertDialog = builder.create(); 
       alertDialog.show(); 

El problema es que el pop-up está rodeado con el fondo de diálogo por defecto tener un propio espacio vacío de un título (como el título es no establecido). ¿Cómo elimino esto? He intentado poner estilo personalizado a través de ContextThemeWrapper como builder = new AlertDialog.Builder(new ContextThemeWrapper(getParent(), R.style.CustomDialogTheme));

Pero no está funcionando. ¡¡¡¿Cómo puedo hacer eso?!!! Gracias por adelantado. xml estilo personalizada se da a continuación:

<style name="CustomDialogTheme" parent="android:style/Theme.Dialog.Alert"> 
      <item name="android:windowIsFloating">false</item> 
      <item name="android:windowNoTitle">true</item> 
     </style> 

This is the output on the emulator

+0

No se muestra el título va a confundir al usuario, que debe mostrar un título en el diálogo, porque es el estándar esperado. – JoxTraex

+0

adjunté el título dentro del diseño (es decir, "Establecer como ..." como se puede ver) – IronBlossom

Respuesta

16

uso tras

Dialog dialog = new Dialog(this, android.R.style.Theme_Translucent_NoTitleBar); 

inflar el diseño y ajuste el punto de vista de contenido del cuadro de diálogo y

dialog.setContentView(view); 
+1

gracias jitendra !! elimina el fondo predeterminado, pero ahora tengo otro problema. Eso, la aplicación im trabajando está configurada en Theme.NoTitleBar.Fullscreen pero cuando el diálogo emerge, la barra de título superior se desliza hacia abajo otra vez y el diálogo no está en la posición central sino en la posición superior izquierda (predeterminada) de la ventana. ¿Me puedes ayudar con esto? – IronBlossom

+1

use Diálogo diálogo = nuevo Diálogo (this, android.R.style.Theme_Translucent_NoTitleBar.Fullscreen); – jeet

+0

y solucioné el problema de centrar el diálogo !! gracias – IronBlossom

7
AlertDialog dialog = new AlertDialog.Builder(this) 
.setView(getLayoutInflater().inflate(R.layout.custom_dialog, null)) 
.create(); 

Con el fin de detectar eventos de interfaz de usuario:

View view = getLayoutInflater().inflate(R.layout.custom_dialog, null); 
Button btn = (Button)view.findViewById(R.id.the_id_of_the_button); 
btn.setOnClickListener(blah blah); 
AlertDialog dialog = new AlertDialog.Builder(this) 
    .setView(view) 
    .create(); 
Cuestiones relacionadas