2012-02-11 1 views
2

Есть ли способ изменить цвет подчеркивания в AlertDialog? Я уже изменил цвет заголовка с помощью пользовательского стиля (см. Ниже), но я не нашел атрибута xml для подчеркивания.AlertDialog title underline color

<style name="CustomTitle" parent="@android:style/TextAppearance.Holo"> 
    <item name="android:textColor">@color/green</item> 
    </style> 

Я бегу Android 4.

Edit: Вот как я создать AlertDialog

 Builder ad = new AlertDialog.Builder(new ContextThemeWrapper(this, 
      R.style.DialogPrivate)); 
    ad.setTitle("Custom Dialog"); 

    ad.setMessage("blaaaaa"); 
    ad.setPositiveButton("test", null); 
    ad.setNegativeButton("test2", null); 
    ad.show(); 

И как это выглядит на данный момент Screenshot

+0

см. Http://stackoverflow.com/questions/2394935/can-i-underline-text-in -an-android-layout – AliSh

+0

Знаете ли вы, как я могу получить доступ к заголовку TextView? Я использую AlertDialog по умолчанию, не расширил его. – user1173367

ответ

-1

попробуйте использовать андроид: textColorLink = "# 783302"

+0

К сожалению, цвет остается неизменным с этим атрибутом. @ color/privateColor user1173367

1

Этот ответ немного запоздалый, но я считаю, что t hat «underline» на самом деле является частью 9 файлов изображений патча, используемых в качестве фона. Вам нужно будет изменить это фоновое изображение, чтобы изменить цвет.

2

Подчеркнутый объект - это объект View с его цветом фона, установленным по умолчанию для голубого (по железу по крайней мере).

Вы можете увидеть макет для диалоговых окон оповещений по адресу: https://github.com/android/platform_frameworks_base/blob/master/core/res/res/layout/alert_dialog_holo.xml#L58. В частности, вид titleDivider:

<View android:id="@+id/titleDivider" 
     android:layout_width="match_parent" 
     android:layout_height="2dip" 
     android:visibility="gone" 
     android:background="@android:color/holo_blue_light" /> 

То неудачен, потому что это означает, что нет никакого способа, чтобы настроить цвет зрения без какой уродливой, Hacky коды, такие как:

void changeUnderlineColor(AlertDialog d, int color) { 
    final ViewGroup v = (ViewGroup) d.getWindow().findViewById(android.R.id.content); 
    v.findViewById(getResources().getIdentifier("titleDivider", "id", "android")).setBackgroundColor(color); 
} 

Это работает на Jellybean с использованием тема holo_light, но это почти наверняка плохая идея. Если вы действительно хотите изменить цвет линии, похоже, вам нужно будет создать полностью собственный диалог.