2010-12-27 4 views
3

Нормальное это поведение не является драматичным, но на Samsung Galaxy S по умолчанию AlertDialog-фон синий, и нормальная отформатированная ссылка (синяя) исчезает. К сожалению, нижеследующий код не меняет цвет ссылки.Изменить цвет гиперссылки в AlertDialog

У кого-нибудь есть идея?

public void showClickableDialog(String title, String msg) { 
    final SpannableString s = new SpannableString(msg); 
    Linkify.addLinks(s, Linkify.ALL); 

    final AlertDialog d = new AlertDialog.Builder(mContext) 
      .setPositiveButton(android.R.string.ok, null).setIcon(
        R.drawable.logo).setTitle(title).setMessage(s).create(); 

    d.show(); 

    // Make the textview clickable. Must be called after show() 
    TextView textView = ((TextView) d.findViewById(android.R.id.message)); 
    // Next Line unfortunately does nothing 
    textView.setTextColor(Color.MAGENTA); 
    textView.setBackgroundColor(Color.BLACK); 
    textView.setMovementMethod(LinkMovementMethod.getInstance()); 

} 

ответ

9

У меня есть следующие в моем style.xml для того, чтобы сделать ссылку апельсин:

<item name="android:textColorLink">#FF9900</item> 

Так я предполагаю, в коде вам просто нужно сделать это (по какой-то причине название method не согласуется с свойство XML):

textView.setLinkTextColor(Color.MAGENTA); 
+0

Установка его в styles.xml для меня, спасибо: D – aimango