Диалог оповещений Linkify, но текст остается белым - PullRequest
2 голосов
/ 29 марта 2011

Здравствуйте. Я использую следующий код для связи адресов электронной почты и URL-адресов, и это работает так, как мне нужно, однако, если вы щелкнете в любом месте, кроме URL-адресов и электронных писем, белый несвязанный текст становится черным и нечитаемым. Буду весьма признателен, но не то, что надоедает при форматировании цвета несвязанного текста при щелчке.

            final SpannableString s = new SpannableString("Some text here before link http://www.google.com some more text then email fake@fake.com");
        Linkify.addLinks(s, Linkify.WEB_URLS | Linkify.EMAIL_ADDRESSES);
        final AlertDialog d = new AlertDialog.Builder(MainMethod.this)
            .setPositiveButton(android.R.string.ok, null)
            .setIcon(R.drawable.about)
            .setTitle(R.string.about_title)
            .setMessage( s )
            .create();
        d.show();
        ((TextView)d.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());

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

EDIT:

Java

       LayoutInflater li = LayoutInflater.from(this);
       View view = li.inflate(R.layout.link, null);
       AlertDialog.Builder builder = new AlertDialog.Builder(this);
       builder.setTitle("Insert Title Here");
       builder.setView(view).create().show();
       TextView text=(TextView) findViewById(R.id.link1);

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">

  <TextView
   android:id="@+id/link1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Body text with email fake@fake.com and a website http://google.com"
   android:autoLink="web|email"
   android:textColorLink="#0000ff"
   android:textColor="#ffffff"
  />

</LinearLayout>

Ответы [ 2 ]

2 голосов
/ 29 марта 2011

Вероятно, это неправильный способ сделать это, но если вы явно установите атрибут textColor, вы можете обойти эту проблему.

<TextView android:id="@+id/text1" 
    android:layout_width="wrap_content"   
    android:layout_height="wrap_content" 
    android:autoLink="all"
    android:textColor="#ffffff"/>

Я был бы упущен, если бы не напомнил вамиспользовать стили при настройке цвета текста, но это так.

0 голосов
/ 19 июня 2011

Установите это в вашем TextView в xml

android:textColor="@android:color/secondary_text_dark_nodisable"

См. Также этот ответ .

...