Android中为TextView添加多个可点击的文本
来源:互联网 发布:苹果cms采集 编辑:程序博客网 时间:2024/06/03 11:17
我们使用社交软件的过程中多多少少会为别人的帖子点赞,如图 :
可以看到用户页面显示出来的只是点了赞的用户的名称,点击这些名称可以进入到该用户的主页。我们就来实现类似的效果。直接上代码吧。
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- TextView mTextView = (TextView) rootView.findViewById(R.id.like_tv);
- // 构造多个超链接的html, 通过选中的位置来获取用户名
- StringBuilder sbBuilder = new StringBuilder();
- for (int i = 0; i < 10; i++) {
- sbBuilder.append("username-" + i + "、");
- }
- String likeUsers = sbBuilder.substring(0, sbBuilder.lastIndexOf("、")).toString();
- mTextView.setMovementMethod(LinkMovementMethod.getInstance());
- mTextView.setText(addClickablePart(likeUsers), BufferType.SPANNABLE);
- }
- /**
- * @param str
- * @return
- */
- private SpannableStringBuilder addClickablePart(String str) {
- // 第一个赞图标
- ImageSpan span = new ImageSpan(getActivity(), R.drawable.umeng_comm_like);
- SpannableString spanStr = new SpannableString("p.");
- spanStr.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
- SpannableStringBuilder ssb = new SpannableStringBuilder(spanStr);
- ssb.append(str) ;
- String[] likeUsers = str.split("、");
- if (likeUsers.length > 0) {
- // 最后一个
- for (int i = 0; i < likeUsers.length; i++) {
- final String name = likeUsers[i];
- final int start = str.indexOf(name) + spanStr.length();
- ssb.setSpan(new ClickableSpan() {
- @Override
- public void onClick(View widget) {
- Toast.makeText(getView().getContext(), name,
- Toast.LENGTH_SHORT).show();
- }
- @Override
- public void updateDrawState(TextPaint ds) {
- super.updateDrawState(ds);
- // ds.setColor(Color.RED); // 设置文本颜色
- // 去掉下划线
- ds.setUnderlineText(false);
- }
- }, start, start + name.length(), 0);
- }
- }
- return ssb.append("等"
- + likeUsers.length + "个人赞了您.");
- } // end of addClickablePart
0 0
- Android中为TextView添加多个可点击的文本
- Android中为TextView添加多个可点击的文本
- Android 中为 TextView 的文本添加下划线
- android中TextView实现多个可点击的文本
- 我的Android进阶之旅------> Android为TextView组件中显示的文本添加背景色
- Android在文本中添加超链接 (TextView)
- Android在文本中添加超链接 (TextView)
- 安卓ListView的Item中添加按钮后,点击Button获取点击行的TextView文本数据
- Android中为textView添加边框
- Android 中对TextView文本多重点击-SpannableString
- Android中点击TextView文本链接跳转到指定页面
- Android TextView中实现点击文本超链接(无下划线)的封装类
- Android TextView中实现点击文本超链接(无下划线)的封装类
- Android中TextView中添加的文本上下两行又重叠
- Android中为RecyclerView添加item的点击事件
- 监听TextView中链接文本的点击事件
- (转)监听TextView中链接文本的点击事件
- Android--EditText/TextView 中添加图片,以及点击图片.
- JDom读取xml文件例子
- 【ThinkingInC++】70、防御性编程
- Android中适用于ListView、GridView等组件的通用Adapter
- Android之ContentProvider总结
- 波兰式解析Evaluate Reverse Polish Notation
- Android中为TextView添加多个可点击的文本
- 三大开源版本控制平台
- 黑马程序员--银行业务调度系统
- 对面向对象编程中的继承概念的再理解
- BAT收购历史
- Smart Home DIY 计划
- 操作系统概论
- Phalcon 开发工具(Phalcon Developer Tools)
- Hadoop namenode无法启动