`

Android textview实现局部点击

 
阅读更多
先看效果图:



实现代码,很简单的:
	private SpannableString getClickableSpan(String text) {
		View.OnClickListener l = new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				Log.i("jerome","click");
			}
		};

		SpannableString spanableInfo = new SpannableString(text);
		int start = spanableInfo.length() - 4;
		int end = spanableInfo.length();
		spanableInfo.setSpan(new Clickable(l), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
		return spanableInfo;
	}

	class Clickable extends ClickableSpan {
		private final View.OnClickListener mListener;

		public Clickable(View.OnClickListener l) {
			mListener = l;
		}

	    @Override
	    public void updateDrawState(TextPaint ds) {
	        ds.setColor(Color.RED);//文本颜色
	        ds.setUnderlineText(false);//是否有下划线
	        ds.bgColor = Color.WHITE;//背景颜色
	    }
	    
		@Override
		public void onClick(View v) {
			if (null != mListener) {
				mListener.onClick(v);
			}
		}
	}


使用:
		mTextView.setText(getClickableSpan("数据获取失败,点击重新加载"));
		mTextView.setMovementMethod(LinkMovementMethod.getInstance());


如果要修改点击效果颜色,参考:http://www.itstrike.cn/Question/2d355020-8e84-45ed-8d29-81da2a2ee43a.html
  • 大小: 32.5 KB
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics