Android中实现为TextView添加多个可点击的文本_Android

本文实例展示了Android中实现为TextView添加多个可点击的文本的方法。该功能在Android社交软件的制作中非常具有实用价值。分享给大家供大家参考。具体如下:

很多时候我们在使用社交软件的过程中多多少少会为别人的帖子点赞,如下图所示:

可以看到用户页面显示出来的只是点了赞的用户的名称,点击这些名称可以进入到该用户的主页。下面我们就来实现类似的效果。

具体代码如下:

@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

运行效果如下图所示:

希望本文所述对大家的Android程序设计有所帮助

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, textview
, 添加
, 文本
可点击
textview 点击变色、textview设置不可点击、textview点击事件、textview点击展开收起、ios textview点击事件,以便于您获取更多的相关知识。

时间: 2016-09-11

Android中实现为TextView添加多个可点击的文本_Android的相关文章

Android中实现为TextView添加多个可点击的文本

本文实例展示了Android中实现为TextView添加多个可点击的文本的方法.该功能在Android社交软件的制作中非常具有实用价值.分享给大家供大家参考.具体如下: 很多时候我们在使用社交软件的过程中多多少少会为别人的帖子点赞,如下图所示: 可以看到用户页面显示出来的只是点了赞的用户的名称,点击这些名称可以进入到该用户的主页.下面我们就来实现类似的效果. 具体代码如下: @Override protected void onCreate(Bundle savedInstanceState)

管理-Android中怎么把图片添加进相册

问题描述 Android中怎么把图片添加进相册 Android中管理相册的类是哪个啊我想把图片存进相册应该怎么做呢我是把工程目录下的图片获取了然后存入到相册里面 解决方案 这个应该是利用系统的ContentProvider进行.参照下面博客,http://blog.csdn.net/mr_dsw/article/details/48524977 解决方案二: Android 相册图片 添加应用到分享列表android裁剪相册图片Android 保存图片到系统相册 解决方案三: 把你的图片放在相册

android开发-关于android中listview里面textview显示混乱

问题描述 关于android中listview里面textview显示混乱 哪位大神能帮我解决下面代码中的listview里面textview的显示混乱问题 纠结好久了 谢谢 复制可以直接执行 源文件: package com.example.listviewtest; import java.util.ArrayList; import android.os.Bundle; import android.app.Activity; import android.view.LayoutInfla

Android中ActionBar和ToolBar添加返回箭头的实例代码

1.ActionBar添加返回箭头 //onCreate方法中 ActionBar actionBar = this.getSupportActionBar(); actionBar.setTitle("搜索功能"); actionBar.setDisplayHomeAsUpEnabled(true); //activity类中的方法 @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.getI

Android中ListView绑定CheckBox实现全选增加和删除功能(DEMO)_Android

ListView控件还是挺复杂的,也是项目中应该算是比较常用的了,所以写了一个小Demo来讲讲,主要是自定义adapter的用法,加了很多的判断等等等等-.我们先来看看实现的效果吧! 好的,我们新建一个项目LvCheckBox 我们事先先把这两个布局写好吧,一个是主布局,还有一个listview的item.xml,相信不用多说 activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/

Android中利用动态加载实现手机淘宝的节日特效_Android

相信去年圣诞节打开过手机淘宝的童鞋都会对当时的特效记忆犹新吧:全屏飘雪,旁边还有个小雪人来控制八音盒背景音乐的播放,让人有种身临其境的感觉,甚至忍不住想狠狠购物了呢(误),大概就是下面这个样子滴: 嗯,确实很炫,那么我们一步步去分析是如何实现的: 一.实现下雪的 View 首先,最上面一层的全屏雪花极有可能是一个顶层的View,而这个View是通过动态加载去控制显示的(不更新淘宝也能看到这个效果).那么我们先得实现雪花效果的 View,人生苦短,拿来就用.打开 gank.io,搜索"雪花&quo

Android 中使用 ViewPager实现屏幕页面切换和页面轮播效果_Android

之前关于如何实现屏幕页面切换,写过一篇博文<Android中使用ViewFlipper实现屏幕切换>,相比ViewFlipper,ViewPager更适用复杂的视图切换,而且Viewpager有自己的adapter,这也让其适应复杂对象,实现数据的动态加载. ViewPager是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api.而viewpager就是其中之一,利用它,我们可以做很多事情,从最简单的导航,到页面菜单等等. 下面我们就展示下Vie

Android编程实现自动调整TextView字体大小以适应文字长度的方法_Android

本文实例讲述了Android编程实现自动调整TextView字体大小以适应文字长度的方法.分享给大家供大家参考,具体如下: package com.test.android.textview; import android.content.Context; import android.graphics.Paint; import android.util.AttributeSet; import android.widget.TextView; public class CustomTextV

Android中使用am命令实现在命令行启动程序详解_Android

在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am. 复制代码 代码如下: usage: am [subcommand] [options]     start an Activity: am start [-D]         -D: enable debugging     send a broadcast Intent: am broadcast     start an Instrumentation: am instrument [flags