我想设置多点击文本视图。我看到许多答案,但任何答案不能帮助我。我用这个代码跨越字符串:-
private SpannableStringBuilder addClickablePart(String str) {
SpannableStringBuilder ssb = new SpannableStringBuilder(Html.fromHtml(deafultSpna + feelingSpan+tagfriendspan));
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(AddPostActivity.this, "hello click",
Toast.LENGTH_SHORT).show();
}
}, 0, Html.fromHtml(deafultSpna).length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(AddPostActivity.this, "hello click ffff",
Toast.LENGTH_SHORT).show();
}
}, Html.fromHtml(deafultSpna).length(), Html.fromHtml(deafultSpna+feelingSpan).length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(AddPostActivity.this, "hello click ffff fdsfds",
Toast.LENGTH_SHORT).show();
}
}, Html.fromHtml(deafultSpna+feelingSpan).length(), Html.fromHtml(deafultSpna+feelingSpan+tagfriendspan).length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return ssb;
}
但是使用这段代码,我发现类似于这个视图:-x1c 0d1x
但我想喜欢这个:-
我使用代码feelingSpan = "<font color=#414141> - Feeling </font><font color=#bd2436>" + feeling_name + "</font>";
创建了span
任何人都可以帮我解决这个问题。先谢了。
3条答案
按热度按时间nqwrtyyt1#
为了简化操作,我们可以先定义一个小类,它将使可单击的范围变为红色,并在单击时显示相应的消息。
接下来,我们可以添加一个简单的方法来创建可单击的跨距。
最后,我们可以填充可生成的字符串并显示它。
这就是它的全部!
6yjfywim2#
您甚至可以添加多个跨度,也可以自定义其颜色。
hyrbngr73#
我已经为此目的创建了一个通用函数,希望这能有所帮助
您可以在此处添加N个属性
对于调用,您可以像这样使用此函数