Android 文本视图中的多个可点击字符串

2023-11-23

我正在创建一个小型 Android 应用程序。我想在文本视图中显示文本,并有多个部分可供单击。 (每个应该显示一些不同的消息)

最后,我设法找出如何在一个文本视图中显示多个跨度,但不幸的是 onClick 方法不起作用。根本没有任何反应,甚至连一条 logcat 行都没有。

我有这样的事情:

SpannableStringBuilder ssb=new SpannableStringBuilder();
ssb.append("first  second")

ssb.setSpan(new ClickableSpan() {
    @Override
    public void onClick(View v) {
    //Eredmeny2.this is just the context, name of the whole class
    Toast.makeText(Eredmeny2.this, "first", Toast.LENGTH_LONG).show();
    }
}, 1, 3, 0);

ssb.setSpan(new ClickableSpan() {
    @Override
    public void onClick(View v) {
    Toast.makeText(Eredmeny2.this, "second", Toast.LENGTH_LONG).show();
    }
}, 7, 10, 0);

TextView t1=new TextView(this);
t1.setText(ssb);
...

文本有下划线,但当我单击它们时没有任何反应。 它是 TableView 的一部分,尽管我认为这不相关。您知道为什么它不执行任何操作吗?我想念什么?或者我应该以某种完全不同的方式来做?

提前致谢。


该部分将使用的布局文件如下:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
    android:id="@+id/ScrollView01"
    android:background="#FF0000">


    <TableLayout
        android:id="@+id/TableLayout01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:stretchColumns="0"
        android:showDividers="middle"
        android:padding="3dp">
    <TableRow
        android:id="@+id/TableRow01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/TextView01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="3dp"
            android:background="#000000"
            android:textColor="#FFFFFF"
            android:padding="6dp"
            android:text="Hour"
            android:textSize="20sp"
            android:textStyle="bold" >

        </TextView>
        <TextView android:id="@+id/TextView02"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textStyle="bold"
            android:text="Minute"
            android:padding="6dp"
            android:textColor="#FFFFFF"
            android:background="#000000">
        </TextView>

    </TableRow>

    </TableLayout>


</ScrollView>

而TextView直接使用的TextView布局如下:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tv" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16sp"
android:background="#000000"
android:textIsSelectable="false"
android:textColor="#FFFFFF">
</TextView>

据我了解,您希望使 textview 的多个部分可点击。

这段代码对我有用!

SpannableString ss = new SpannableString("this is a text");
ss.setSpan(new myClickableSpan(1),0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new myClickableSpan(2),5, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new myClickableSpan(3),8, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

mTextView.setText(ss);
mTextView.setMovementMethod(LinkMovementMethod.getInstance());

只需制作自定义 ClickableSpan 来处理点击事件

public class myClickableSpan extends ClickableSpan{

    int pos;
    public myClickableSpan(int position){
        this.pos=position;
    }

    @Override
    public void onClick(View widget) {
        Toast.makeText(getApplicationContext(), "Position "  + pos + " clicked!", Toast.LENGTH_LONG).show();
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 文本视图中的多个可点击字符串 的相关文章

随机推荐

  • 使用 pandas read_csv 和 nrows 读取约 13000 行 CSV 文件的部分内容

    我正在尝试将 CSV 文件的片段读入 pandas DataFrame 当我将 nrows 设置为超过某个点时 我遇到了麻烦 我的 CSV 文件被分成具有不同标题 数据类型的不同段 因此我浏览了该文件并找到了不同段的行号 并保存了行号 当我
  • 如何加密 ASP.NET 网站中的查询字符串参数? [复制]

    这个问题在这里已经有答案了 在我的一个 ASP Net 网站中 我必须向用户提供一个链接 其中所有查询字符串参数都应加密 我的想法是使用命令 aspnet regiis 用于加密web configdata 将输出作为查询字符串传递到已发布
  • 可以从(完整)git-svn 克隆重新创建 svn 存储库吗?

    如标题所示 有没有办法使用 git svn 从完整克隆重建 svn 存储库 包含从 r1 开始的每个提交 Edit 我可能应该补充一点 我正在寻找一种实用的方法来做到这一点 近乎完美的副本是可以的 只要它仍然像原始 svn 存储库一样可用
  • xls 文档打开后 Apache POI 设置选定的单元格

    我们有下一种情况 我们的系统有 xls 格式的数据导出 这是一个包含许多行和列的巨大文件 用户下载并打开文档后 他会看到文档滚动到最后一列和最后一个电子表格选项卡 这非常烦人 最好将焦点设置在第一个选项卡和第一个单元格上 我做了简单的测试代
  • 通过 Parallel.ForEach 使用多线程依赖

    我使用 Simple Injector 作为我的 IoC 容器 SimpleInjector 使用这种简单的技术可以处理每个线程和每个 Web 请求的混合生活方式 container RegisterPerWebRequest
  • Laravel 5.2 登录会话不持久

    我一直在使用 Laravel 5 2 实现一个简单的身份验证系统Sentinel Route login success Sentinel authenticate array email gt email password gt pass
  • 如何加速 .NET winforms 渲染

    我有一系列表格并在它们之间导航 每个表单都有一组控件 我从 SQLite 数据库加载属性 这是一个很长 大约 1 秒 的操作 不会给用户最好的感觉 因为表单是逐渐绘制的 我不太介意延迟 但我希望在加载所有数据时绘制表单 我想避免新线程 因为
  • Oracle SQL如何编写一条sql语句来验证用户是否在我的网络中(即朋友或朋友的朋友)

    我有这个问题 给定一个users由社交网络中用户的用户名组成的表friends包含用户名和用户朋友名的表 如下所示 username friendname John Thomas Chris James 我正在尝试编写一条 SQL 语句 如
  • firebase 重定向到 URL 的云函数

    我正在尝试为我的移动应用程序创建下载端点 该应用程序可在应用程序商店和游戏商店中使用 我想要一个可供用户在 iOS 设备或 Android 设备上下载应用程序的 URL 我试图找出是否可以为此目的为 firebase 创建一个云函数 我正在
  • Rollup 是否可以保留文件和文件夹结构?

    我正在使用 ES6 导入并使用 Rollup 对其进行转译 输出是单个捆绑文件 Rollup 可以配置为生成文件到文件的转译结果吗 这是我正在使用的当前配置 它显然会输出一个文件 gulp task rollup function cons
  • Rails 4 授权 gem [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找 Rails 4 的授权 gem 以前我用康康舞 但现在看起来已经过时了 我在这里找到了 the rolehttps github com
  • 如何选择字符串多行?

    我在尝试着Select String在多行文本上 Example This is line1
  • 解析非常大的 XML 文件并编组为 Java 对象

    我有以下问题 我有非常大的 XML 文件 例如 300 Megs 我需要解析它们以便将它们的一些值添加到数据库中 这些文件的结构也非常复杂 我想使用 Stax Parser 因为它提供了一次仅拉解析 从而处理 XML 文件的一部分的良好可能
  • 为什么可以像数组一样查询 jQuery('div') ?

    我还有一个关于 jQuery 架构的问题 div 构造一个新的jQuery object div instanceof jQuery true 我想知道为什么可以像数组一样查询它 尽管它不是数组 div 0 returns the firs
  • 使用新的 Unity VideoPlayer 和 VideoClip API 播放视频

    电影纹理Unity 5 6 0b1 发布后最终被弃用 现在发布了在桌面和移动设备上播放视频的新 API 视频播放器 and 录像片段如果需要 可用于播放视频并检索每帧的纹理 我已经设法使视频正常工作 但无法从 Windows 10 上的编辑
  • Android 中使用 GreenRobot eventbus 的 IPC

    我需要使用远程服务进行通信 绿色机器人 EventBus 不幸的是 它似乎不适用于IPC 查看代码 我也没有看到解决方法 任何帮助 将不胜感激 额外问题 是否还有其他支持 IPC 的 EventBus 适用于 Android 我需要使用 g
  • 如何让 scalaz IDEA 实时模板适用于符号方法?

    中的许多方法scalaz具有符号 unicode 等价物 例如forever and 当然 我的做法是错误的 符号方法确实有 ASCII 等价物 该项目包含一个实时模板 XML 文件对于 IDEA 所以这些可以是自动完成 我相信通过使用fo
  • Java正则表达式仅第一个匹配

    如何告诉以下正则表达式仅查找第一个匹配项 以下代码不断查找字符串中所有可能的正则表达式 即我只寻找子字符串的索引 200 800 50 public static void main String args String regex Str
  • PHP 用 POST 数据打开另一个网页

    我是 PHP 新手 我正在尝试做一些可能是不好的做法并且很可能是不可能的事情 我基本上只是将一些东西组合在一起来测试我的知识并看看 PHP 可以做什么 我有一个带有收集数据的表单的网页 它被提交给一个 PHP 脚本 该脚本执行一系列处理 但
  • Android 文本视图中的多个可点击字符串

    我正在创建一个小型 Android 应用程序 我想在文本视图中显示文本 并有多个部分可供单击 每个应该显示一些不同的消息 最后 我设法找出如何在一个文本视图中显示多个跨度 但不幸的是 onClick 方法不起作用 根本没有任何反应 甚至连一