如何将多个字符串资源分配给单个文本视图?

How to assign multiple string resources to a single textview?

我在字符串资源中创建了 3 个字符串。每个字符串中都有一个外部 link 。基本上我想把一个句子放在 TextView 里面,里面有 3 个 link 之外的句子。请在 Android.

中说明如何执行此操作

如果我们可以通过XML分配多个字符串,那将是最好的。

你必须使用Spannable,下面是示例,看看

ClickableSpan linkClick = new ClickableSpan() {
@Override
public void onClick(View view) {
    Toast.makeText(getApplicationContext(), "Link Click",
            Toast.LENGTH_SHORT).show();
    view.invalidate();
}

@Override
public void updateDrawState(TextPaint ds) {
    if (textView.isPressed()) {
        ds.setColor(Color.BLUE);
    } else {
        ds.setColor(Color.RED);
    }
    textView.invalidate();
  }
};
textView.setHighlightColor(Color.TRANSPARENT);

Spannable spannableString = new SpannableString("Link in TextView");
spannableString.setSpan(linkClick, 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(spannableString, TextView.BufferType.SPANNABLE);
textView.setMovementMethod(LinkMovementMethod.getInstance());

在此,String Link in TextView 只有 "LINK" 是可点击的

如果您想合并 3 个链接并使它们可点击,您可以试试这个:

<string name="combined_links"><![CDATA[<a href="%1$s"> my link one</a> <a href="%2$s"> my link two</a> <a href="31$s"> my link three</a>]]></string>
String sentence = getString(R.string.combined_links, getString(R.string.link_one), getString(R.string.link_two), getString(R.string.link_three))