同一个TextView不同文字的点击事件

同一TextView的文字不同大小以及部分字体加粗设置 在开发过程中,我们有时候会遇到一个范围内的文字需要有不同的大小,这时候当然再添加一个TextView是最简单粗暴,但是如何在同一个TextView中设置不一样的大小呢。 这时需要使用到SpannableString来编辑文本内容,将文本内容存入其中,如何通过AbsoluteSizeSpan来改变字体大小,最后在spanString的setSpan方法中设置玩吗需要的样式,数字表示改变大小的字的起始... 阅读详情

最近有朋友问到同一个TextView的不同文字点击事件如何实现,由于之前自己做过这方面的东西,但没有把它整理出来,今天上班不是很忙,抽了点时间来整理一个demo,给大家分享一下。好了,废话不多说,上代码和效果图

下载地址链接:

http://download.youkuaiyun.com/detail/hap_gx/5241456
 

package com.example.textviewclick;

import android.app.Activity;
import android.os.Bundle;
import android.text.Html;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.text.style.URLSpan;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
    TextView mTextView2;     
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
		setContentView(R.layout.textview);  
        
        mTextView2 = (TextView)findViewById(R.id.text2);  
        /*********** 同一个TextView不同文字的点击事件*******/
		StringBuilder actionText = new StringBuilder();
		actionText
				.append("<a style=\"text-decoration:none;\" href='username'>"
						+ "username:" + " </a>");
		actionText
				.append("隐形人"
						+ "<a style=\"color:blue;text-decoration:none;\" href='singstar'> "
						+ " love" + "</a>");
			actionText.append(" : \"" + "孙燕姿" + "\"");
		mTextView2.setText(Html.fromHtml(actionText.toString()));
		mTextView2.setMovementMethod(LinkMovementMethod
				.getInstance());
		CharSequence text = mTextView2.getText();
		int ends = text.length();
		Spannable spannable = (Spannable) mTextView2.getText();
		URLSpan[] urlspan = spannable.getSpans(0, ends, URLSpan.class);
		SpannableStringBuilder stylesBuilder = new SpannableStringBuilder(text);
		stylesBuilder.clearSpans(); // should clear old spans
		for (URLSpan url : urlspan) {
			TextViewURLSpan myURLSpan = new TextViewURLSpan(url.getURL());
			stylesBuilder.setSpan(myURLSpan, spannable.getSpanStart(url),
					spannable.getSpanEnd(url), spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
		}
		mTextView2.setText(stylesBuilder);
    }
    
    private class TextViewURLSpan extends ClickableSpan {
		private String clickString;

		public TextViewURLSpan(String clickString) {
			this.clickString = clickString;
		}

		@Override
		public void updateDrawState(TextPaint ds) {
		    ds.setColor(MainActivity.this.getResources().getColor(R.color.text_color));
		    ds.setUnderlineText(false); //去掉下划线
		}
		
		@Override
		public void onClick(View widget) {
			if (clickString.equals("username")) {
				Toast.makeText(getApplication(), clickString, Toast.LENGTH_LONG)
				.show();
			} else if (clickString.equals("singstar")) {
				Toast.makeText(getApplication(), clickString, Toast.LENGTH_LONG)
						.show();
			}
		}
	}

}


 

下面是点击的效果图:

    

 

 

 

textview设置多种不同的字体颜色和点击事件 最近项目需要用到textview为特定字符设置不同的颜色,如果用不同的控件拼起来的话一行也许没有问题,但是如果换行的话效果就不理想了就像qq空间回复品论的效果,昵称和内容文字颜色不一样,点击事件也不一样。 目前我找到两张方法,效果一样。想用哪种看个人喜好。 1,使用html格式 “ String html = “看这里,测试下划线、斜体字、红色字的格式”; tv.setText(Html.fro 阅读详情

相关推荐

同一个TextView不同文字的点击事件 demo

同一个TextView不同文字的点击事件,点击不同的文字做不同的处理

TextView用SpannableStringBuilder加全文以及不同点击事件

/这个监听的回调是异步的,在监听完以后一定要把绘制监听移除,不然这个会一直回调,导致界面错乱。.append("全文").append("全文")//减6是为了加上...跟全文。//55是左右的margin。

csdn_zxw的博客 796

LVI-SAM适配KITTI数据集避坑指南:IMU频率与数据同步问题解析

本文深入解析了将LVI-SAM框架适配KITTI数据集时,在IMU频率与多传感器数据同步方面遇到的核心挑战与解决方案。针对KITTI数据集中sync与extract两种数据包的差异,文章提供了从数据选择、参数调优到时间戳诊断与修复的完整避坑指南,帮助开发者实现稳定高效的SLAM系统部署。

7z8x2c4v6b9的博客 248

android中TextView不同颜色和部分区域的点击事件

文章目录前言一、ClickableSpan添加部分文字的点击事件二、ForegroundColorSpan设置部分字体的颜色三.先设置可点击,再设置字体颜色总结 前言 android中通过SpannableStringBuilder实现一个TextView中不同颜色显示和部分文字的点击事件 提示:以下是本篇文章正文内容,下面案例可供参考 一、ClickableSpan添加部分文字的点击事件 val mSpannableStringBuilder: SpannableStringBuilder = Spa

cdc的博客 987

GD32F303开发实战(一):从零搭建MDK工程与时钟配置详解

本文详细介绍了如何从零开始为GD32F303微控制器搭建一个清晰、可维护的MDK工程模板。内容涵盖开发环境准备、工程目录结构规划、文件分组管理、关键工程配置,并重点解析了时钟树原理,手把手指导配置108MHz系统时钟。通过实战步骤与常见问题排查,帮助开发者构建一个稳定可靠的开发基础,便于后续功能扩展。

weixin_29174141的博客 270

5分钟搞定Vivado IP核的VCS仿真:从Export脚本到Verdi波形查看全流程

本文详细介绍了如何利用Vivado的Export Simulation功能,快速搭建Vivado IP核的VCS与Verdi联合仿真环境。通过自动化脚本生成、FSDB波形配置及高效调试技巧,实现从工程导出到波形查看的全流程,大幅提升FPGA验证效率,尤其适合IC验证工程师和竞赛团队。

weixin_29306261的博客 482

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

我们使用社交软件的过程中多多少少会为别人的帖子点赞,如图 :         可以看到用户页面显示出来的只是点了赞的用户的名称,点击这些名称可以进入到该用户的主页。我们就来实现类似的效果。直接上代码吧。      @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(

Mr.Simple的专栏 9459

Sentaurus TCAD学习——Scheme编程语言

sentaurus scheme语言学习记录

摸摸小熊猫的博客 964

android中实现为textview添加多个可点击的文本,Android 在TextView中加入多个点击文本区域...

Android做注册功能或者其他功能时,一般会需要在一个TextView中,加入多个可以点击的区域,例如下图中的《用户协议》和《隐私政策》,需要有点击事件:image.png很多人会做多个Textview拼接起来,这样其实很麻烦,其实使用一个Android 自带的功能就可以做了。如下:String str = "注册即代表已阅读并遵循《用户协议》和《隐私政策》";SpannableStringBu...

weixin_35907598的博客 488

从工创赛实战到开源:一个高鲁棒性智能物流视觉系统的构建与优化

本文分享了从工创赛实战中构建高鲁棒性智能物流视觉系统的完整经验。针对赛场复杂光线环境,详细阐述了摄像头选型、基于CLAHE和形态学梯度的抗干扰色环识别算法、卡尔曼滤波状态估计以及多线程串口通讯与任务调度等核心优化策略,旨在打造一个稳定可靠的视觉系统,并已将相关代码开源。

weixin_29046035的博客 320

uniapp 记录运动轨迹 开发_智能手环穿戴设备APP开发解决方案

智能手环是一种穿戴式智能设备,是目前备受关注的科技产品。目前智能手环具有的功能有记录日常生活中的运动数据、移动轨迹,定位等,有些还可以进行睡眠质量的检测,并将这些数据传送至移动端如手机、平板等,可对数据进行分析,指导健康生活的作用。而智能手环开发方案就是将这些功能实现,将算法烧录到主控板上。智能手环都有哪些功能  1、记录运动数据  对于喜欢健身的用户来说,智能手环记录的运动数据功能...

weixin_39678493的博客 1764

textview的多种字体和一个textview中的多个点击事件

在实际开发当中。我们经常会遇到像用户协议这种形式的textview。这种textview一般都是只有特殊的几个字有点击事件。别的都没有,那么怎么办呢。 后来我自己在网上找了很多发现了一种实现方式。我感觉挺不错的。就拿出来和大家分享一下 首先创建一个textviewprotected TextView agreement = (TextView)findViewById(R.id.textvie

翠月风 991

C# 动态壁纸实战:7步带你从零开始制作动态壁纸

动态壁纸是指在计算机桌面上播放视频、动画或交互式内容的一种技术。与传统的静态壁纸相比,动态壁纸更加生动有趣,可以大大提升桌面的观赏性和互动性。通过本文的详细讲解和代码示例,相信你已经学会了如何使用C#实现动态壁纸。动态壁纸不仅能够提升桌面的美观度,还能展示你的编程技能。希望这篇教程对你有所帮助,期待你在C#编程中取得更大的成就!🌟✨如果你有任何问题或建议,欢迎在评论区留言交流!希望这篇教程对你有所帮助,期待你在C#编程中取得更大的成就!😊✨😊✨。

java专栏 1673

android 同一个TextView不同文字的点击事件

转自:http://blog.youkuaiyun.com/hap_gx/article/details/8781910 package com.example.textviewclick;      import android.app.Activity;   import android.os.Bundle;   import android.text.Html;   import an...

灰色轨迹 611

解决Gradle中NPM命令失效问题

摘要:本文分析了IntelliJ IDEA中Gradle执行npm命令失败的问题,报错显示"npm"文件不存在。通过确认npm安装路径、检查系统PATH与Gradle环境的差异,提出两种解决方案:1) 在build.gradle中使用npm绝对路径;2) 通过launchctl修改用户PATH。实例展示了如何修改Gradle脚本或系统配置来解决该问题,指出跨平台开发中环境变量配置的重要性。文章为开发者提供了处理类似问题的实用方法。

2501_90323865的博客 90

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

android中text怎么使用方法,Android UI中TextView的使用方法

Android UI中TextView的使用方法一、TextView不同区域设置颜色,大小、点击事件String msg = getResources().getString(R.string.school_roll_auth);SpannableStringBuilder style = new SpannableStringBuilder(msg);// 设置字体颜色style.setSpan...

weixin_42138139的博客 118

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Android之同一个TextView设置不同样式的文字

需求分析: 很多时候,我们需要在视图中显示不同样式的文字,但是为了减少viewgroup层级,不想新增很多个TextView控件来实现不同样式的文字。 那么有没有一种方式能够在同一个TextView控件中实现多种自定义的样式的文字呢? 答案是肯定的,下面就让我们来做一个此问题的实践实验。 实践过程: 首先我们在布局xml文件中定义了三个TextView控件,它们的定义如下:

bear_huangzhen的专栏 8747

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Android TextView部分文字实现点击事件

项目中遇到这样一个需求,很简单,就是让TextView中的部分文字实现可以点击跳转的逻辑,大概是这样: 这种需求很简单,脑海里却突然没有了思路,简单Google一下就搜索到了,原来Android的TextView中早已为开发人员提供好了这样的API: SpannableStringBuilder.class This is the class for text whose content ...

Jason_HD的博客 5650

深入探讨Android TextView内容文字的点击事件实现与优化

在移动应用开发中,TextView是一个非常常见的控件,用于显示文本内容。随着用户交互需求的增加,开发者不仅需要显示静态文本,还需要在文本内容中添加点击事件,例如点击某个单词或短语,触发特定的操作。这种需求广泛存在于各种场景中,如实现超链接、标签点击、电话拨号、信息复制等功能。本文将深入探讨如何在Android中实现Tex...

cnzzs的博客 1421

TextView的花式文字,同一个TextView显示不同颜色的文字以及不同大小的文字

时常有些情况下,不得不在一个TextView中显示不同颜色不同大小的文字 我这边总结了一个比较实用而方便的方法 不同颜色的文字 String str="今天<font color='#FF0000'>天气不错</font>"; tv.setText(Html.fromHtml(str)); 有需要的话,可以点击下载颜色选择器 不同大小的文字: Str...

qq_36818970的博客 384

Android同一个TevtView显示不同颜色的文字,添加不同的点击事件。

一下代码在同一个Textview里面设置了2段不同的文字和点击事件。 TextView protocalTv=(TextView)findViewById(R.id.protocal); String str=protocalTv.getText().toString(); SpannableString spannableString1 = new SpannableString(str)

yuyuyuzhen的专栏 1266

Android TextView中部分文字高亮,且可响应点击事件

如果只是单纯的想让TextView中部分文字高亮显示,下面两个方法就行了: /**      * 关键字高亮变色      *       * @param color      *            变化的色值      * @param text      *            文字      * @param keyword      *            

LWK 的专栏 3232

TextView设部分文字的点击事件

TextView textView = new TextView(mContext); textView.setMovementMethod(LinkMovementMethod.getInstance());  很重要 builder.append(new StyleString(mContext, obj.xxx).toStyleString()); builder.append(ne

yue's blog 745
上一篇: Android美工设计按钮样式20px向上投影2px 40%黑的实现
下一篇: 类似新浪微博动态发布时间转换机制,显示刚刚、几分钟前、几小时前、昨天、前天····
hap_gx
博客等级 码龄14年 6粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值