Android 中可以从可点击的文本启动活动吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (28)

有什么方法可以从字符串的一部分启动活动吗?

例如我在我的strings.xml文件中有这个:

<string name="clickable_string">This is a <u>clickable string</u></string>
提问于
用户回答回答于

你可以尝试下这段代码:

final Context context = ... // whereever your context is
CharSequence sequence = Html.fromSource(context.getString(R.string.clickable_string));
SpannableStringBuilder strBuilder = new SpannableStringBuilder(sequence);
UnderlineSpan[] underlines = strBuilder.getSpans(UnderlineSpan.class);
for(UnderlineSpan span : underlines) {
   int start = strBuilder.getSpanStart(span);
   int end = strBuilder.getSpanEnd(span);
   int flags = strBuilder.getSpanFlags(span);
   ClickableSpan myActivityLauncher = new ClickableSpan() {
     public void onClick(View view) {
       context.startActivity(getIntentForActivityToStart());
     }
   };

   strBuilder.setSpan(myActivityLauncher, start, end, flags);
}

TextView textView = ...
textView.setText(strBuilder);
textView.setMovementMethod(LinkMovementMethod.getInstance());
用户回答回答于

将此字符串分配给您的一个xml布局,然后在你的代码中获取TextView的id,然后为此Textview实现OnClickListener,在其中您可以开始所需的新活动。

扫码关注云+社区