让 TextView 的事件响应支持 Intent

按上一篇的方式可以给 TextView 加上事件响应,然而仅限于 web、email、phone、map等几种,如果希望在点击后跳转到自己的 Activity 要怎么实现呢?看代码吧!

 

这是 Activity 代码:

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        linkify = new LinkifyUtil(this);
        Intent intent = new Intent("com.example.android.note.ADD");
        intent.setData(Uri.parse("content://com.example.android.note/item"));
        
        linkify.addIntentLink(intent, (TextView) findViewById(R.id.tv_new_item));
    }

 

这是 LinkifyUtil 类:

package com.example.android.note.util;

import android.app.Activity;
import android.content.Intent;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

/**
 *
 * @author eidolon
 */
public class LinkifyUtil {
    private final Activity currentActivity;

    public LinkifyUtil(Activity activity) {
        this.currentActivity = activity;
    }

    public void addIntentLink(final Intent intent, final TextView view, final int start, final int end) {
        CharSequence source = view.getText();
        if (source instanceof Spanned) {
            IntentSpan[] spans = ((Spanned) source).getSpans(start, end, IntentSpan.class);
            if (spans.length > 0) {
                return;
            }
        }
        
        SpannableString spannableString = new SpannableString(source);
        spannableString.setSpan(new IntentSpan(new OnClickListener() {

            public void onClick(View view) {
                currentActivity.startActivity(intent);
            }
        }), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        
        view.setText(spannableString);
        view.setMovementMethod(LinkMovementMethod.getInstance());
    }

    public void addIntentLink(final Intent intent, final TextView view) {
        addIntentLink(intent, view, 0, view.getText().toString().length());
    }
}

 

最后是 IntentSpan 类:

package com.example.android.note.util;

import android.text.style.ClickableSpan;
import android.view.View;
import android.view.View.OnClickListener;

/**
 *
 * @author eidolon
 */
public class IntentSpan extends ClickableSpan {

    private final OnClickListener listener;

    public IntentSpan(View.OnClickListener listener) {
        this.listener = listener;
    }

    @Override
    public void onClick(View view) {
        listener.onClick(view);
    }
}
 

 

YOLOv8作物病害检测实战源码 这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。 立即下载

相关推荐

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994

Android TextView 使用 intent 传递信息 实现注册界面

使用intent在活动间传递值 首先是 MainActuvity 活动(注册界面 写完个人信息点击注册 ) 跳转到 In 活动 (通过 intent 获得 MainActivity 中的信息 ) 效果图如下: MainActivity 实现: Java代码: public class Home extends AppCompatActivity { //用于存放个人注册信息 E...

圆号本号 1581

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?.docx

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?

稀疏文件变成了普通文件

原本有一个 30G 的稀疏文件 file.img,实际占用 3.5G 的空间。但压缩成 file.img.tar.gz 后再解压出来,发现实际占用了 30G 空间,稀疏文件不稀疏了。为什么呢?原来是因为在压缩时没有加上 -S 参数。此参数的作用是指明被压缩文件是一个稀疏文件,如果没有这个参数,程序会填充稀疏文件,导致变成了一个普通文件。 因此,以后在压缩稀疏文件时需要加上 -S 参数: [...

陈挺佳的专栏 594

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

安装Xen,启动后不能连网

一番折腾之后,XEN总算装好了。启动中一直祈祷能顺顺利利,然而事与愿违,终于还是遇上了问题。不过有问题就是有机会,我们这行的人大多是爱折腾的,所以也没什么好怕。 网络总是连不上,用 ifconfig 查看貌似都正常。但就是 ping 不成功。后来在网上查来查去,发现可以用 ethtool 查看网卡的状态,于是用 ethtool eth0 查看,原来 Speed 什么的都是 Unknown,然...

陈挺佳的专栏 299

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

实体引擎与ORM的区别

Apache OFBiz Cookbook.pdf

Allen专栏 954

高校技术转移办公室人员如何系统化管理科技成果信息?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

PLCopen运动控制避坑指南:单轴功能块常见报错排查(基于SM3_Basic函数库)

本文深入解析PLCopen运动控制中单轴功能块的常见报错问题,基于SM3_Basic函数库提供实用排查指南。从功能块逻辑错误与硬件报错的甄别技巧到高频报错场景的解决方案,帮助工程师快速定位并解决运动控制系统中的稳定性问题,提升工业自动化设备的运行效率。

weixin_33686714的博客 316

Android程序开发学习笔记系列——基础篇(附源码)

  随着Android的越炒越热和各种应用的不断推出,自己也比较巧合的在去年12月份宽带续费时给送了个电信的Android系统定制机——算是促使我提前了Android开发的学习计划,并给我提供了一个开发测试的'场地'(手机),也更增强了我学习Android程序开发的兴趣——别的市场前景等先暂且不说,至少我学会了,可以做个程序自己用。闲话少说,Android程序开发学习笔记这个系列,我将尽量让每篇博...

weixin_33918114的博客 265

永不消逝的电波 -GSM空口信号的接收与解码

一开始接触软件无线电应该是从很早之前对RFID洗衣卡的解密开始的,后来接触人员定位,慢慢的打开了这样一扇大门。。。。 翻到之前做的GSM信号的接收解码,今天就对其过程做一个记录,也不是什么新颖的内容,权当是记录和回忆了。 对于GSM网络的相关内容,不是非常的熟悉,如有不正确的,欢迎批评指正。

Jack.Xu 专栏 1万+

独立使用OFBiz实体引擎

实体引擎(Entity Engine)在OFBiz中是不可或缺的核心组件。本文并不是一篇实体引擎的使用帮助,只是想说明如何独立地去使用实体引擎,可以方便自己阅读源码。笔者将建立一个gradle项目,用来管理依赖。   首先,需要下载OFBiz,可以下载发布包,也可以下载SVN源码。发布包下载地址:http://ofbiz.apache.org/download.html,SVN源码下载: ...

陈挺佳的专栏 705

cadence capture CIS 之使用access创建数据库(.mdb)

cadence capture CIS 之使用access创建数据库(.mdb)准备工作新建数据库 准备工作 1、一台电脑; 2、安装 Microsoft access database; 新建数据库 打开你准备创建数据库的位置,右键单击——》新建——》 Microsoft access database(注意:文件格式要选*.mdb) 打开数据库文件,创建——》表; 对数据表进行编辑,编辑表头、编辑表的内容、增加表的数量; 编辑表头:选中要编辑的表——》表设计 编辑内容:类似于excel添

weixin_42256550的博客 3147

MuJoCo 仿真中的碰撞检测与参数优化实战

本文深入解析MuJoCo仿真中的碰撞检测机制与参数优化策略,涵盖位掩码配置、凸包分解实战及穿模问题解决方案。通过具体案例和参数设置建议,帮助开发者高效解决机械臂抖动、轴孔装配等常见问题,提升仿真精度与稳定性。特别针对步进电机仿真提供了高增益位置执行器的优化方案。

weixin_29081101的博客 333

给TextView添加点击事件的写法

Activiyy必须实现onClickListeren

zhaokai621的博客 930

【学长笔记】点亮 STM32F411CEU6 板载 LED —— 入门级教程

本文提供了STM32F411CEU6开发板(Black Pill)点亮LED的完整教程。详细介绍了硬件信息(板载LED连接PC13,低电平有效)、CubeMX配置步骤(GPIO输出模式)、Keil5工程设置及完整代码实现(包含GPIO初始化和系统时钟配置)。教程还涵盖ST-Link下载器连接方法、程序下载步骤(需配合BOOT0按键操作)以及验证程序运行的方法。该教程特别适合STM32初学者,通过简单的LED闪烁示例快速入门STM32开发。

apple_53308981的博客 1323

魔教传奇—阿里软件的魔方文化

2月的阿里之行叶老大送了我们很特别的礼物——魔方,这个小时候玩的很好的物件,现在拿在手里还是那么亲切,回来后我的同事们也正酝酿着一场魔方大PK,组都分好了,今天饭桌上大家还在讨论供略的问题,不但餐桌上的话题又多了一个,连饭前锻炼的项目都有了。 我在饭桌上给我们的小组命名为魔鱼丝,名字的意思主要来源于一个大家都很认可的菜,这个名字在一小群天天在一起吃午饭的同事们中很快得到了认可。为啥要叫魔鱼

冰冰子的专栏 2699

基于高频变压器的隔离式推挽栅极驱动电路

摘要:本文介绍了一种基于高频变压器的隔离式推挽栅极驱动电路,通过变压器实现电气隔离,为功率MOS管提供可靠驱动信号。电路包含输入侧PWM信号处理、变压器磁耦合隔离传输以及副边驱动逻辑等关键部分,利用电阻电容网络控制开关速度并防止误触发。该隔离驱动方案广泛应用于高压开关电源、新能源汽车电机控制器、光伏逆变器和工业变频器等需要高电压隔离及抗干扰能力的电力电子设备中,有效保障系统安全性和可靠性。

qq_37999850的博客 483

【ArcGIS Pro微课1000例】0047:深度学习--棕榈树提取全流程

对汤加科洛瓦伊种植园每棵棕榈树的健康状况进行清查和评估,这需要花费大量的时间和劳动力。为简化此过程,将在 ArcGIS Pro 中使用深度学习模型来识别树木,然后根据植被绿度的测量值计算其健康状况。第一步是找到显示汤加科洛瓦伊的影像,该影像具有足够精细的空间和光谱分辨率来识别树木。获得此影像后,将创建训练样本并将其转换为可供深度学习模型使用的格式。为了让模型识别出它的查找任务,需要定义棕榈树的影像,以便识别相似的像素和树木大小。

智慧空间实验室 2207

iCIBA简单案例

效果图: 代码: <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> <link rel="stylesheet" href="css/iCIBA.css" /> </head> <bo...

weixin_30710457的博客 156

ValueError:Using a `device_map`, `tp_plan`, `torch.device` context manager or setting `torch.set解决方案

本文主要介绍了ValueError:Using a `device_map`, `tp_plan`, `torch.device` context manager or setting 'torch.set_default_device(device)` requires `accelerate`解决方案,希望能对使用transformers的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 3万+
上一篇: 给 TextView 加上效果和事件响应
下一篇: 独立使用OFBiz实体引擎
javaEidolon
博客等级 码龄24年 1粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值