由于这个页面采用MVP,所以这里会有一个IView的积累 ,这个方法自然就要@Override
@Override
public void setBluetext(String zw_longtext, String zw_bluetext) {
// "成为联通用户,可将默认网速免费升至200K/S,且有效期更长!点击联通用户登记页进行申请";
remindlongWords = zw_longtext + "点击联" + zw_bluetext + "进行申请 ";//显示的全部字符串
//绘制颜色部分代码
/* SpannableStringBuilder style = new SpannableStringBuilder(
remindlongWords);
style.setSpan(
new ForegroundColorSpan(getResources().getColor(
R.color.deepblue_word)), start, end,
Spannable.SPAN_EXCLUSIVE_INCLUSIVE); // 设置指定位置文字的颜色
remindWords.setText(style);
remindWords.setOnClickListener(this);*/
//需要监听click的范围 start end
int start = zw_longtext.length() + 3;
int end = zw_longtext.length() + 3 + zw_bluetext.length();
//1.必须要的新建一个Span
SpannableString spStr = new SpannableString(remindlongWords);
//2.NoLineClickSpan 写好了制定位置的颜色和click事件
NoLineClickSpan clickSpan = new NoLineClickSpan(wantUpDkPresenter.factoryDKMainModel.zw_type,
getResources().getColor(R.color.deepblue_word));
//3.span帮顶下click span
spStr.setSpan(clickSpan, start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
//4.需要设置下str
remindWords.setText(spStr);
//5.设置TextView可以点击
remindWords.setMovementMethod(LinkMovementMethod.getInstance());
}
/**
* Created by aa on 2015/4/24.
* NoLineClickSpan是一个继承于CLickSpan的类,重写了颜色和click事件,代码如下:
*/
public class NoLineClickSpan extends ClickableSpan {
int type;
int showcolor;
public NoLineClickSpan(int type,int cl) {
super();
this.type=type;
showcolor=cl;
}
@Override
public void updateDrawState(TextPaint ds) {
ds.setColor(showcolor);
ds.setUnderlineText(false); //去掉下划线
}
@Override
public void onClick(View widget) {
//processHyperLinkClick(text);//点击超链接时调用
Log.e("onclick","已经被点击");
Intent intent=new Intent(widget.getContext(),UniApplyActivity.class);
intent.putExtra("type",type);
widget.getContext().startActivity(intent);
}
}
textview点击指定字符串跳转 textview超链接效果
原文地址:http://blog.csdn.net/weizongwei5/article/details/45247645