2011-04-20 12 views
7

Tengo una actividad con un botón Guardar y cancelar en la parte inferior.Botones de estilo AlertDialog para una actividad

En AlertDialog, los botones se muestran dentro de una vista de contenedor con estilo de algún tipo.

¿Cómo podría dar a los botones de mi Actividad la misma apariencia? Específicamente, ¿cómo podría aplicar el estilo de la vista de contenedor de botones en el AlertDialog para decir un LinearLayout en mi actividad que contiene los botones?

Gracias

Respuesta

1

hago algo como esto:

LinearLayout dialogLayout = (LinearLayout) ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.dialog_addeditrecord, null); 

Luego uso del DialogLayout llamar findViewById() para tirar de los botones y otros puntos de vista y OnClickListeners configuración y tal ...

entonces para mostrar el cuadro de diálogo:

builder = new AlertDialog.Builder(this); 

builder.setView(dialogLayout); 

builder.create().show(); 
+0

Gracias, reflexionaré sobre eso y veré si puedo implementarlo. Para ser sincero, esperaba poder agregar un atributo a LinearLayout que he definido en el archivo de diseño xml de la actividad, como una simple referencia a una imagen de fondo o algo así. – Jodes

+0

Nunca he averiguado si hay alguna manera de modificar la imagen de fondo de los botones "Positivo", "Negativo" y "Neutro" ... esta era la única forma en que podía evitarlo. – Maximus

+0

Gracias por responder nuevamente, no entiendo cómo funciona tu código, ¿dónde lo pondría? En el onCreate de la actividad que tiene los botones que quiero estilo? ¡Muy confundido! – Jodes

30

Hay soluciones g iven elsewhere que funcionan. En resumen, puede simplemente usar los atributos style en su xml para lograr esto. Por ejemplo, style="?android:attr/buttonBarStyle" y style="?android:attr/buttonBarButtonStyle" harán el trabajo (para API 11+). Aquí hay un ejemplo de dos botones unidos horizontalmente.

<LinearLayout 
    style="?android:attr/buttonBarStyle" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:measureWithLargestChild="true" 
    android:orientation="horizontal" 
    android:paddingTop="0dip" > 

    <Button 
     style="?android:attr/buttonBarButtonStyle" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text= "Ok" /> 

    <Button 
     style="?android:attr/buttonBarButtonStyle" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Cancel" /> 
</LinearLayout> 

Lo único que queda, es que hay una línea horizontal justo encima de los botones en un alertDialog, que no va a crear el código de seguridad. Si desea tener esa línea horizontal, debe agregarse manualmente en el xml, arriba del LinearLayout. Esto le dará la línea horizontal:

<View 
    android:layout_width="fill_parent" 
    android:layout_height="1dp" 
    android:layout_marginBottom="0dp" 
    android:background="?android:attr/dividerVertical" /> 
+1

wow, esto es genial, guarda mi proyecto :) – Michal

+1

Totalmente brillante. Bounty en el camino! – Fattie

+0

@JoeBlow ¡Gracias! – hadi

Cuestiones relacionadas