我对Android上的Java编码有一点疑问。
所以,我有一个带有字符串长文本的TextView。我只想点击这个长文本的一个单词,我可以将它链接到另一个Activity。
顺便说一下,我是Android开发的新手,所以请不要解释你的解决方案过于复杂。谢谢! :)
我不知道,我怎么能这样做。之前我也用google搜索过一个解决方案,但没有找到一个运行良好的明确方法。无论如何,我很感激你的帮助。
答案 0 :(得分:2)
您想要点击的结果是什么?
最简单的方法是将URLSpan
应用到TextView的内容中,但如果您想要查看网页以外的其他内容,则可以实现自己的ClickableSpan
版本并制作点击做任何你想做的事。
根据您的评论进行修改:
使ClickableSpan转到另一个活动非常简单,这是您需要的代码的开头:
public class MyURLSpan extends ClickableSpan {
Class<?> mClassToLaunch;
public MyURLSpan(Class<?> classToLaunch) {
mClassToLaunch = classToLaunch;
}
@Override
public void onClick(View widget) {
Intent intent = new Intent(widget.getContext(), mClassToLaunch);
widget.getContext().startActivity(intent);
}
@Override
public void updateDrawState(TextPaint ds) {
// If you don't want the default drawstate (blue-underline), comment this super call out.
super.updateDrawState(ds);
}
}
然后使用它:
String longText = "your text goes here...";
SpannableString textViewContents = new SpannableString(longText);
textViewContents.setSpan(new MyURLSpan(NextActivity.class), indexToStart, lengthOfClickArea, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
myTextView.setText(textViewContents);
答案 1 :(得分:1)
嗯,你幸运 它似乎可能:请参阅this链接 另一种方法可能是在字符串中添加超链接。
答案 2 :(得分:0)
您可以创建每个单词的TextView,并将它们添加到FlowLayout。然后,您可以将OnClick事件分配给您想要的任何视图。
传送“这是一个测试”实际上由4个TextView组成,全部在一些布局中(可能是一个FlowLayout)。
在这篇SO帖子中有关于FlowLayout的一些细节:
答案 3 :(得分:0)
我没试过这个,但我认为如果你使用以下提示那么可能是你会成功。 txt.setText(Html.fromHtml( “...链接...”)); txt.setMovementMethod(LinkMovementMethod.getInstance());
select a word on a tap in TextView/EditText
我认为这会有所帮助。