这里面涉及两个知识点——超链接和跳转。以下进行逐一解说:

1.实现超链接:

1.1形成超链接文本

    public static SpannableString getUserlink(String userName,
String userId) {
SpannableString ss = new SpannableString(userName);
URLSpan urlSpan = new URLSpan("gch://" + userId);
ss.setSpan(urlSpan, 0, ss.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return ss;
}

1.2将其加入到TextView上面:

        mTVText.setText(getUserlink("guchuanhang", "2010111180"));

1.3给该TextView设置权限

        mTVText.setMovementMethod(LinkMovementMethod.getInstance());

注意:这里默认生成的超链接是有下划线&&字体颜色是蓝色的,假设要删除下划线||改动超链接的颜色。能够使用UrlSpanNoUnderline .java代替URLSpan,其代码例如以下:

package com.scott.crash;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.content.res.ResourcesCompat;
import android.support.v7.app.AppCompatActivity;
import android.text.TextPaint;
import android.text.style.URLSpan;
import android.widget.TextView; public class UrlSpanNoUnderline extends URLSpan {
int greenColor=0;
public UrlSpanNoUnderline(String p_Url) {
super(p_Url);
greenColor= Color.parseColor("#00ff00");
}
public void updateDrawState(TextPaint p_DrawState) {
super.updateDrawState(p_DrawState);
p_DrawState.setUnderlineText(false);
p_DrawState.setColor(greenColor);
}
}

參考地址:

https://prativas.wordpress.com/2013/05/20/hyperlinktextcolor/

以下是加入超链接页面的完整代码:

package com.example.androidtest;

import android.app.Activity;
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.method.LinkMovementMethod;
import android.text.style.URLSpan;
import android.widget.TextView; public class FirstActivity extends Activity {
TextView mTVText; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); mTVText = new TextView(this);
setContentView(mTVText);
mTVText.setMovementMethod(LinkMovementMethod.getInstance());
mTVText.setText(getUserlink("guchuanhang", "2010111180"));
// mTVText.setText(getZanSequence()); } public static SpannableString getUserlink(String userName,
String userId) {
SpannableString ss = new SpannableString(userName);
URLSpan urlSpan = new URLSpan("gch://" + userId);
ss.setSpan(urlSpan, 0, ss.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return ss;
} }

2.实现跳转:

2.1给目标页面加入对应标志(在manifest中声明。相似于“声称,我是维修电脑的。有电脑问题的请找我”)。

在目标Activity中加入怎样intent

    <intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="gch" >
</data>
</intent-filter>

在Android中的intent-filter中。声明,处理“gch://?

?

?”的url。

2.2在目标Activity中解析url。获取想要的数据:


import android.app.Activity;
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.URLSpan;
import android.widget.Button;
import android.widget.TextView; public class SecondActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); TextView show = new TextView(this);
setContentView(show);
/**
* 因为gch://有6个字符组成,所以。截取6位之后的字符串就可以
*/
String urlString = getIntent().getDataString().substring(6);
show.setText(urlString);
} }

TextView超链接的更多相关文章

  1. Android之捕获TextView超链接

    应该是好久没有写有关技术类的文章了,今天分享一篇捕获TextView超链接的文章,希望对大家有所帮助,我终于在歪路上回归正途了.这个捕获TextView超链接应该算是比较常用吧,如果你会了,就不用看了 ...

  2. TextView 超链接点击跳转到下一个Activity

    1:activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/androi ...

  3. 自定义图文混排视图MyImageTextView

    http://blog.csdn.net/xujunfeng000/article/details/36399339?utm_source=tuicool&utm_medium=referra ...

  4. TextView 中添加超链接

    在textView添加超链接,有两种方式,第一种通过HTML格式化你的网址,一种是设置autolink,让系统自动识别超链接,下面为大家介绍下这两种方法的实现   代码如下:    第一种    pu ...

  5. android textView 添加超链接(两种实现方式)

    在textView添加超链接,有两种方式,第一种通过HTML格式化你的网址,一种是设置autolink,让系统自动识别超链接,下面为大家介绍下这两种方法的实现 在textView添加超链接,有两种方式 ...

  6. 给TextView添加超链接的四种方式

    因为在上上篇博客中介绍了SpannableString的使用(SpannableString使用详解),由此想到给TextView添加超链接究竟有多少种方式?经过个人总结,现在一共发现四种,如果还有其 ...

  7. Android(java)学习笔记147:textView 添加超链接(两种实现方式,,区别于WebView)

    1.方式1: LinearLayout layout = new LinearLayout(this); LinearLayout.LayoutParams params = new LinearLa ...

  8. Android TextView中实现点击文本超链接(无下划线)的封装类

    android中有的时候须要在TextView上设置一些超链接,点击这些超链接时进行一些操作.比如新浪微博上的一些keyword,点击时会跳转到对应的页面. 怎样实现我们就直接看源代码吧. /** * ...

  9. Android开发:TextView添加超链接的简便方法

    TextView中加入超链接的方式很多,但下面的方式应该的最简便合理的 strings.xml中定义字串 <string name="blog"><a href= ...

随机推荐

  1. 洛谷P5238 整数校验器

    看到没有边读入边处理的,我来水一发 我们要看一下有那些情况是格式不合法的 单独的负号 -0(后面可以有其他数字) 0 +(后面一些数字) 我们用快速读入的方法 读取字符进行处理 还有可能超出范围的 考 ...

  2. MyBatis学习总结(7)——Mybatis缓存

    一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Se ...

  3. 4.AND,OR

    4.WHERE中使用AND,OR连接多个过滤条件      AND:并且的关系,要求条件同时满足    OR:或者的关系,要求条件满足某一个就可以     //查询10部门,基本工资大于2000的员工 ...

  4. 重启rsyslog服务时出现问题(误删/var/log/messages解决方案)

    今天修改了/etc/rsyslog.conf中的内容后,想着要通过systemctl restart rsyslog重启服务,但是执行完命令后,总感觉/etc/rsyslog.conf中修改的内容没有 ...

  5. YAML说明

    YAML说明 https://www.cnblogs.com/songchaoke/p/3376323.html XML的简化

  6. linux下通过命令启动多个终端运行对应的命令和程序

        作者:张昌昌 在一些情况下,往往须要同一时候启动多个终端并让终端运行自己主动运行对应的命令,进而达到提高操作效率的目的.在linux下gnome-terminal启动终端命令, gnome-t ...

  7. 基于对话框的应用程序,点击button打开一个网页

    核心:使用Webbrowser控件 加入一个新的对话框,右键 Insert ActiveX control,选中 双击对话框生成响应的类(Web).并为webbrowser绑定成员变量(m_Web) ...

  8. 2435: [Noi2011]道路修建(树上操作)

    2435: [Noi2011]道路修建 题目:传送门 题解: 建完边之后以1为根建树,统计深度和各个点的子树大小(包括自己) 询问的时候:答案=长度*abs(n-深度大的点的子树大小*2) ans+= ...

  9. sublime配置python运行环境

    1.sublime下载与插件管理 1.1 下载 官网地址:https://www.sublimetext.com/3 1.2 安装Package Control管理插件 使用ctrl + ` (感叹后 ...

  10. HDU 4609 FFT+各种分类讨论

    思路: http://www.cnblogs.com/kuangbin/archive/2013/07/24/3210565.html 其实我是懒得写了.... 一定要define int long ...