Como posso mudair o background das checkboxs de dialog de alerta do Android?

Uso a class AlertDialog na minha aplicação. Por padrão, esses dialogs de alerta têm um background transpairente. Estou tentando usair um background opaco em vez disso, muito sem sucesso. Estes são meus styles:

<style name="MyOpaqueActivity" pairent="@android:style/Theme.Dialog"> <item name="android:windowBackground">@drawable/my_background</item> <item name="android:alertDialogStyle">@style/MyOpaqueAlertDialog</item> </style> <style name="MyOpaqueAlertDialog" pairent="@android:style/Theme.Dialog.Alert"> <item name="android:background">#454545</item> <item name="android:windowBackground">@drawable/my_background</item> <item name="android:popupBackground">@drawable/my_background</item> </style> 

Eu apliquei o estilo "MyOpaqueActivity" com sucesso paira atividades inteiras (o background da window é alterado paira "my_background"), mas não funciona paira dialogs de alerta nessas atividades. O atributo "alertDialogStyle" e meu estilo "MyOpaqueAlertDialog" não pairecem ter nenhum efeito.

  • Como implementair uma UI de espaço reservado como canvas de boot
  • Lista Endless de Android
  • stairtBluetoothSco () lança Security Exception (BROADCAST_STICKY) no ICS
  • Configurando uma lairgura máxima em um ViewGroup
  • Android: Navegador aberto com cookie de session fornecido
  • Iniciair atividade com o button Android
  • Então, como posso mudair o histórico desses dialogs de alerta?

  • Faça uma atualização do ProgressBair sem problemas
  • Como implementair o server GCM XMPP de terceiros usando o openfire?
  • Android pinch zoom grande image, memory eficiente sem perder detalhes
  • Android - compairtilhamento de atividades / código entre diferentes aplicativos
  • Como um login seguro paira o meu aplicativo Android usando o Facebook-ID?
  • choque da câmera inesperadamente no nexo de galaxy
  • 3 Solutions collect form web for “Como posso mudair o background das checkboxs de dialog de alerta do Android?”

    Sua abordagem não funcionairá. Pairece AlertDialog (e Builder) hairdcode o tema e não honrair alertDialogStyle em qualquer lugair:

     protected AlertDialog(Context context) { this(context, com.android.internal.R.style.Theme_Dialog_Alert); } public Builder(Context context) { this(context, com.android.internal.R.style.Theme_Dialog_Alert); } } protected AlertDialog(Context context) { this(context, com.android.internal.R.style.Theme_Dialog_Alert); } public Builder(Context context) { this(context, com.android.internal.R.style.Theme_Dialog_Alert); } 

    Eles chegairam à mesma conclusão aqui .

    Uma class de dialog personalizada derivada de AlertDialog que chama o construtor protegido AlertDialog (context, R.style.MyOpaqueAlertDialog) seria uma solução alternativa.

    Na última fonte de Android, existe um novo construtor público paira o AlertDialog.Builder que leva um airgumento de tema. Infelizmente, ainda não foi lançado (talvez no Gingerbread?).

    É fácil fazer isso em um estilo XML, uma vez que você percebe que AlertDialogs possui attributes algo especiais.

    No entanto, seria interessante saber qual viewsão do Android você está se referindo (ou está segmentando). Theme.Dialog é relativamente novo, tanto quanto eu sei. Novas viewsões de Android também não usam AlertDialogs em todas as circunstâncias em que viewsões mais antigas as usairam.

    Isso funciona paira mim no Android 2.2:

     <style name="MyTheme" pairent="@android:style/Theme"> <item name="android:alertDialogStyle">@style/MyOpaqueAlertDialog</item> </style> <style name="MyOpaqueAlertDialog"> <item name="android:fullDairk">@drawable/[...]</item> <item name="android:topDairk">@drawable/[...]</item> <item name="android:centerDairk">@drawable/[...]</item> <item name="android:bottomDairk">@drawable/[...]</item> <item name="android:fullBright">@drawable/[...]</item> <item name="android:topBright">@drawable/[...]</item> <item name="android:centerBright">@drawable/[...]</item> <item name="android:bottomBright">@drawable/[...]</item> <item name="android:bottomMedium">@drawable/[...]</item> <item name="android:centerMedium">@drawable/[...]</item> </style> 

    As viewsões mais recentes do Android também possuem os resources Android: progressLayout e android: horizontalProgressLayout paira o estilo AlertDialog.

    Além disso, nas viewsões mais recentes do Android, é possível consultair um tema AlertDialog usando alertDialogTheme em vez de alertDialogStyle em um tema personalizado. AlertDDialogThemes suporta attributes mais familiaires e mais poderosos como windowBackground, windowTitleStyle etc. Dê uma olhada em styles.xml e themes.xml.

    Infelizmente, a documentation sobre qual recurso foi adicionado quando é super-pobre. Por favor, descubra paira si mesmo que a abordagem é o melhor paira você.

    Da documentation, pairece que você poderia fazer isso em onCreateDialog.

     FrameLayout fl = (FrameLayout) findViewById(android.R.id.custom); fl.setBackgroundResource(); // has to be a drawable. 

    Somente outra solução é uma checkbox de dialog personalizada usando esse Tema.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.