我有一个TextView,其中的文本是动态变化的。这个文本包含像<a href='myWord'>myWord</a>
这样的字符串。我想要在单击这个“链接”之后,在同一个活动中的EditText中显示myWord。
这是我的代码:
txt.setText(Html.fromHtml("...<a href='link'>link</a>..."));
txt.setMovementMethod(LinkMovementMethod.getInstance());
对于 href 属性中的 URL,它可以正常工作,但是其他格式会出现错误。
我在 StackOverflow 上找到了很多类似的问题,但它们都是关于网址链接的。在我的应用程序中,我想在活动内创建“链接”。 通常,如果需要的话,我可以将标签更改为其他标签...
请帮忙! 谢谢!
-----已解决----- 感谢 Jacob Phillips 的建议!
也许将来会有人感兴趣。 这是代码:
//This is my string;
String str = "<b>Text</b> which contains one <a href='#'>link</a> and another <a href='#'>link</a>";
//TextView;
TextView txt = new TextView(this);
//Split string to parts:
String[] devFull = data[v.getId()][1].split("<a href='#'>");
//Adding first part:
txt.append(Html.fromHtml(devFull[0]));
//Creating array for parts with links (they amount always will devFull.length-1):
SpannableString[] link = new SpannableString[devFull.length-1];
//local vars:
ClickableSpan[] cs = new ClickableSpan[devFull.length-1];
String linkWord;
String[] devDevFull = new String[2];
for(int i=1; i<devFull.length; i++){
//obtaining 'clear' link
devDevFull = devFull[i].split("</a>");
link[i-1] = new SpannableString(devDevFull[0]);
linkWord = devDevFull[0];
cs[i-1] = new ClickableSpan(){
private String w = linkWord;
@Override
public void onClick(View widget) {
// here you can use w (linkWord)
}
};
link[i-1].setSpan(cs[i-1], 0, linkWord.length(), 0);
txt.append(link[i-1]);
try{
txt.append(Html.fromHtml(devDevFull[1]));
}
catch(Exception e){}
}
mListener.onClick(v);
行上遇到了一个错误:The method onClick(DialogInterface, int) in the type DialogInterface.OnClickListener is not applicable for the arguments (View)
我不知道该如何纠正它。你有什么想法吗? 无论如何,还是谢谢! - lubartView.OnClickListener
而不是DialogInterface.OnClickListener
。请接受为答案 :) - Jacob PhillipsView.OnClickListener
,但出了些问题。我改用了ClickableSpan()
而不是ClickableString()
,这很有帮助。谢谢! - lubart