gpt4 book ai didi

Android:从可点击文本启动 Activity

转载 作者:IT老高 更新时间:2023-10-28 23:03:51 25 4
gpt4 key购买 nike

有什么方法可以从字符串的一部分启动 Activity 。

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

<string name="clickable_string">This is a <u>clickable string</u></string>

我希望 u 标记之间的文本带有下划线,并在插入到 TextView

时单击时启动 Activity

最佳答案

试试这个,

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

基本上,您必须将 Span 对象附加到您希望可点击的字符范围内。由于您无论如何都在使用 HTML,因此您可以使用 Html.fromSource() 放置的下划线跨度作为您自己的跨度的标记。

或者,您也可以在字符串中定义一个只有您知道的标签。即<activity>并将您自己的标记处理程序提供给 Html.fromSource() 方法。这样,您的 TagHandler 实例可以执行类似的操作,用特定颜色、下划线、粗体围绕标记文本并使其可点击。但是,如果您发现自己经常编写此类代码,我只会推荐 TagHandler 方法。

关于Android:从可点击文本启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4025770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com