TextView超链接
这里面涉及两个知识点——超链接和跳转。以下进行逐一解说:
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超链接的更多相关文章
- Android之捕获TextView超链接
应该是好久没有写有关技术类的文章了,今天分享一篇捕获TextView超链接的文章,希望对大家有所帮助,我终于在歪路上回归正途了.这个捕获TextView超链接应该算是比较常用吧,如果你会了,就不用看了 ...
- TextView 超链接点击跳转到下一个Activity
1:activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/androi ...
- 自定义图文混排视图MyImageTextView
http://blog.csdn.net/xujunfeng000/article/details/36399339?utm_source=tuicool&utm_medium=referra ...
- TextView 中添加超链接
在textView添加超链接,有两种方式,第一种通过HTML格式化你的网址,一种是设置autolink,让系统自动识别超链接,下面为大家介绍下这两种方法的实现 代码如下: 第一种 pu ...
- android textView 添加超链接(两种实现方式)
在textView添加超链接,有两种方式,第一种通过HTML格式化你的网址,一种是设置autolink,让系统自动识别超链接,下面为大家介绍下这两种方法的实现 在textView添加超链接,有两种方式 ...
- 给TextView添加超链接的四种方式
因为在上上篇博客中介绍了SpannableString的使用(SpannableString使用详解),由此想到给TextView添加超链接究竟有多少种方式?经过个人总结,现在一共发现四种,如果还有其 ...
- Android(java)学习笔记147:textView 添加超链接(两种实现方式,,区别于WebView)
1.方式1: LinearLayout layout = new LinearLayout(this); LinearLayout.LayoutParams params = new LinearLa ...
- Android TextView中实现点击文本超链接(无下划线)的封装类
android中有的时候须要在TextView上设置一些超链接,点击这些超链接时进行一些操作.比如新浪微博上的一些keyword,点击时会跳转到对应的页面. 怎样实现我们就直接看源代码吧. /** * ...
- Android开发:TextView添加超链接的简便方法
TextView中加入超链接的方式很多,但下面的方式应该的最简便合理的 strings.xml中定义字串 <string name="blog"><a href= ...
随机推荐
- python基础,函数,面向对象,模块练习
---恢复内容开始--- python基础,函数,面向对象,模块练习 1,简述python中基本数据类型中表示False的数据有哪些? # [] {} () None 0 2,位和字节的关系? # ...
- java静态方法
静态方法(全局方法)不能访问this(当前对象)它和类没有关系,会有逻辑错误,当调用静态方法的时候不需要创建对象 可以直接为boolean result = MyTest.isPrime();直接访问 ...
- nginx配置修改
改变nginx配置想让它生效而不停止服务,如下两种方式都可以:1) 检查nginx配置: nginx -t; 配置重载: nginx -s reload2) 检查nginx配置: nginx -t; ...
- 洛谷 1063 dp 区间dp
洛谷 1063 dp 区间dp 感觉做完这道提高组T1的题之后,受到了深深的碾压,,最近各种不在状态.. 初看这道题,不难发现它具有区间可并性,即(i, j)的最大值可以由(i, k) 与 (k+1, ...
- ASP.NET-优化websit
如何优化一个网站 1.如果是数据库的问题则尝试添加索引.优化SQL语句,如果是算法的问题,则优化算法. 2.如果对于一些不经常改动的页面可以使用静态页技术! 3.对于一些数据不需要及时更新的而且取数据 ...
- 5.3.5 namedtuple() 创建命名字段的元组结构
在命名元组里.给每一个元组的位置加入一个名称,而且能够通过名称来訪问.大大地提高可读性,以便写出清晰代码,提高代码的维护性.事实上它就像C++里的结构体. collections.namedtuple ...
- 在对Activity基类的封装中,我做了什么
在开发实践中,不同Activity有很多代码是反复冗余的.因此非常有必要将这部分抽取出来.封装一个继承自Activity的类,命名为BaseActivity. 翻看之前写过的代码,起初,BaseAct ...
- HDU 2512
水题 #include <iostream> #include <cstdio> #include <algorithm> #define LL __int64 # ...
- mysql字符集修改(ubuntu)
1.关闭mysql服务 /etc/init.d/mysql start|stop 2.在/etc/mysql/my.cnf,添加下列信息 [client] default-character-set= ...
- MVC传递数据-传递对象或对象集合
前言 本文主要介绍从View(或者js)文件向Controller提交对象或者对象集合.比方.将表格中的一行数据作为一个对象提交.或将多行数据作为一个集合提交到Controller. 回想 从View ...