2016-02-17 2 views
0

Я пытаюсь создать диалоговое окно, которое появляется, когда я выбираю EditTextPreference в моем приложении SettingsActivity. До сих пор я был в состоянии изменить цвет двух кнопок и фона с:Стиль/тема диалога EditTextPreference Android

dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setTextColor(0xffffffff); 
    dialog.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(0xffffffff); 
    dialog.getWindow().setBackgroundDrawableResource(R.drawable.blue_background); 

Но я до сих пор не в состоянии изменить название в верхней части диалогового окна.

enter image description here

Цвет названия «зона» в настоящее время извлекается из стиля я использую для списка предпочтений, он наследуется, и я не могу понять, как присвоить ему стиль, который изменит что цвет названия

<style name="MyPreferenceTheme" parent="Theme.AppCompat.NoActionBar"> 
    <item name="android:windowBackground">@color/care_call_white</item> 
    <item name="android:textColor">@drawable/text_colour_state</item> 
    <item name="android:textColorSecondary">@drawable/text_colour_state</item> 
</style> 

Может ли кто-нибудь помочь в стиле, который мог бы это сделать? Или с некоторым кодом, который мог бы установить его вместо этого? Все мои диалоговые окна стилизованы одинаково, но это сложнее, поскольку это часть предпочтения, поэтому я не могу настроить его так же, как и с другими.

Чтобы уточнить, единственное, что нужно изменить, это название зоны. Я бы хотел, чтобы оно было белым.

ответ

0
<style name="cust_dialog" parent="@android:style/Theme.Dialog"> 
<item name="android:windowTitleStyle">@style/dialog_title_style</item> 
</style> 

<style name="dialog_title_style" parent="android:Widget.TextView"> 
<item name="android:background">@android:color/black</item> 
<item name="android:padding">10dp</item> 
</style> 

И вы можете создать экземпляр диалог:

Dialog dialog=new Dialog(this,R.style.cust_dialog); 
dialog.setContentView(R.layout.fragment_features_dialog); 
dialog.setTitle(R.string.features); 

Теперь диалог показывает вверх с черным заголовка цвет фона.

+0

С EditTextPreference вы не создаете объект диалога вы получите его дано вам .. поэтому я не могу ввести стиль при создании – Murphybro2

+0

да, но вы говорите, что вы пытаетесь создать диалог box.anyway удачи. И вы используете методы класса диалога. Дайте ему попробовать.! – Kristo

0

Сортировка.

Я создал класс CustomEditTextPreference, что унаследованный EditTextPreference, а затем отменяют

@Override 
protected void onPrepareDialogBuilder(AlertDialog.Builder builder) { 
    builder.getContext().setTheme(R.style.PreferenceThemeDialog); 
    super.onPrepareDialogBuilder(builder); 
} 

и изменил стиль в контексте строителей с

<style name="PreferenceThemeDialog"> 
    <item name="android:textColor">@color/care_call_white</item> 
</style>