Kiedy próbuję zastosować standardowy motyw do AlertDialog
AlertDialog Motyw: Jak zmienić kolor tekstu przedmiotu?
AlertDialog.Builder builder = new AlertDialog.Builder(MyClass.this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT);
builder.setTitle("Change");
String[] info= this.getResources().getStringArray(R.array.info);
ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.select_dialog_singlechoice);
arrayAdapter.addAll(info);
builder.setSingleChoiceItems(arrayAdapter, ....
Wynik:
Nota jest to, że nie mam problemu z builder.setItems(...)
ponieważ jego kolor tekstu jest Black
natomiast zastosowany motyw z builder.setSingleChoiceItems(...)
ma biały kolor tekstu.
Jakąkolwiek szybką naprawę? Lub w dowolny sposób utworzyć niestandardową kompozycję opartą na AlertDialog.THEME_DEVICE_DEFAULT_LIGHT
?
Moja dostosowany styl nie działa zgodnie z oczekiwaniami:
<style name="AlertDialogCustomTheme" android:parent="android:Theme.Dialog">
<item name="android:textColor">#7ABDFF</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<!--THE FOLLOWING ITEMS HAVE NOT EFFECT ... !! -->
<item name="android:layout_centerHorizontal">true</item>
<item name="android:layout_centerVertical">true</item>
<item name="android:textColorAlertDialogListItem">#A844BD</item>
<item name="android:itemBackground">#7ABDFF</item>
</style>
Aktualizacja
@lopez odpowiedź jest kompletnym rozwiązaniem, ale znaleźć jednego wiersza poprawkę do mojego problemu, motyw niestandardowy które mają być stosowane do działalności w manifeście:
<style name="MyTheme">
<item name="android:textColorAlertDialogListItem">@android:color/black</item>
</style>
Niestety to atrybut jest dostępny tylko w API 11 i powyżej – jiduvah