警报对话框链接但保持文本为白色

时间:2011-03-29 00:15:47

标签: android fonts colors alertdialog linkify

您好我正在使用以下代码来链接电子邮件地址和网址,这就像我需要它一样工作但是如果您点击除了网址和电子邮件之外的任何地方,取消链接的白色文本将变为黑色且不可读。这不是什么大不了的事情,但是对于格式化未链接文本onclick的颜色方面的任何帮助都会非常有用。

            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());

所以现在下面的文字“一些文字在此处链接更多文本然后发送电子邮件”在对话框中显示白色但在按下时变为黑色

修改

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 个答案:

答案 0 :(得分:2)

这可能不是正确的方法,但是如果你明确设置textColor属性,你就可以解决这个问题。

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

如果我在设置文字颜色时没有提醒你使用styles,那将是我的疏忽,但确实如此。

答案 1 :(得分:0)

在xml

中的TextView上设置此项
android:textColor="@android:color/secondary_text_dark_nodisable"

另见this answer