【发布时间】:2014-07-03 16:34:26
【问题描述】:
我有两个这样的字符串资源:
<string name="give_us_feedback">Give us feedback at %1$s if you want to make the app even better!</string>
<string name="email">info@mycompany.com</string>
我想将电子邮件部分设置为蓝色并带有下划线以指示用户可以单击它(整个 TextView,而不仅仅是电子邮件文本)。我知道使用 SpannableString 为文本着色,但是当我通过 getString(int resId, Object... formatArgs) 组合两个字符串时它似乎不起作用,大概是因为 getString() 将执行强制转换或 .toString () 在被发送的对象上。以下是不起作用的:
TextView emailTV = new TextView(this);
SpannableString email = new SpannableString(getString(R.string.email));
email.setSpan(new UnderlineSpan(), 0, email.length() - 1, 0);
email.setSpan(new ForegroundColorSpan(Color.BLUE), 0, email.length() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
String feedback = getString(R.string.give_us_feedback, email);
emailTV.setText(feedback);
有什么想法吗?
【问题讨论】:
标签: android string textview spannablestring