首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向字符串android的一部分添加操作

问如何向字符串android的一部分添加操作
EN

Stack Overflow用户
提问于 2015-10-22 06:13:40
回答 3查看 180关注 0票数 0

我有一个休闲文本:“通过单击OK,您将禁用该服务。了解更多信息”。

我想使“学习更多”点击,但我希望弹出菜单出现,而不是指向一个网站。

我使用了休闲堆栈问题:How to set the part of the text view is clickable

效果很好。我通过".“找到了学得更多的索引。此解决方案使应用程序在中文和印地语语言中崩溃(在印地语中,一个点是编写的-> \\)。

我如何使“学习更多”点击通用方式显示弹出式菜单?

是否有一种方法可以在strings.xml中定义单击操作,比如调用链接?(而不是调用链接->启动弹出菜单?)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-22 08:43:45

解决了,可能是黑客,但效果很好。

在strings.xml中,我添加了

代码语言:javascript
复制
//<a></a> tags to be removed later on
<string name="learn_more">By clicking OK you will disable the service. &#60;a&#62;Learn more&#60;&#47;a&#62;</string>

在守则中:

代码语言:javascript
复制
TextView textView= (TextView) findViewById(R.id.textViewInLayout);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setText(R.string.learn_more);

//indexes of the clickable text
int start = textView.getText().toString().indexOf("<a>");
int end = textView.getText().toString().indexOf("</a>");

//set the text as html to make the tags disappear 
textView.setText(Html.fromHtml(getString(R.string.learn_more)));

//make the text clickable
Spannable spannable = (Spannable) textView.getText();

ClickableSpan myClickableSpan = new ClickableSpan() {
@Override
public void onClick(View widget) {
       yourActionHere();
  }
};

// end - 3 beacuse of </a>
spannable.setSpan(myClickableSpan, start, end - 3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);`
票数 0
EN

Stack Overflow用户

发布于 2015-10-22 06:21:00

您可以使用WebView和锚。创建新的WebViewClient (特别是需要此方法:shouldOverrideUrlLoading()),并在用户单击锚时执行所需的任何操作。

票数 0
EN

Stack Overflow用户

发布于 2015-10-22 06:26:11

可以根据定义的文本创建单击事件。看看这个图书馆..。也许能帮你..。https://github.com/klinker24/Android-TextView-LinkBuilder

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33274446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档