本地化可点击跨度 Android

2024-01-20

我在我的应用程序中使用本地化。

english : `<![CDATA[Makan <b>daging</b> adalah terlalu banyak karbohidrat]]>`
indonesia : `<![CDATA[Eating <b>meat</b> is too much carbohydrates]]>`

然后在活动中我写:

class MainActivity: AppCompatActivity() {
    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)
        setupView()
    }

    private fun setupView() {
        val htmlSpan = SpannableString(HtmlCompat.fromHtml(
            getString(R.string.click_me_button),
            HtmlCompat.FROM_HTML_MODE_COMPACT
        ))
        val styleSpan = htmlSpan.getSpans(0, htmlSpan.length, StyleSpan::class.java).first()
        val spanStart = htmlSpan.getSpanStart(styleSpan)
        val spanEnd = htmlSpan.getSpanEnd(styleSpan)
        val clickSpan = object:ClickableSpan() {
            override fun onClick(widget: View) {
                Toast.makeText(this@MenghubungkanProdukActivity, "Hehehehe", Toast.LENGTH_LONG).show()
                Timber.d("HEHEHE")
            }
        }
        htmlSpan.setSpan(clickSpan, spanStart, spanEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)

        binding.textWarning.text = htmlSpan
    }
}

But clickSpan不触发。它出什么问题了?


实际上我的代码正在运行。但我刚刚意识到我没有设置movementMethod of the TextView

所以解决方案是添加这一行:

binding.textWaring.movementMethod = LinkMovementMethod.getInstance()

所以它看起来像这样:

private fun setupTextWarning() {
    val htmlSpan = SpannableString( ... )
    val moreSpan = htmlSpan.getSpans(0, htmlSpan.length, StyleSpan::class.java).first()
    val spanStart = htmlSpan.getSpanStart(moreSpan)
    val spanEnd = htmlSpan.getSpanEnd(moreSpan)
    val clickSpan = object : ClickableSpan() { ... }
    htmlSpan.setSpan(clickSpan, spanStart, spanEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)

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

本地化可点击跨度 Android 的相关文章

  • 如何对这个字符串进行子串化

    我想得到这个字符串的 4 个部分 String string 10 trillion 896 billion 45 million 56873 我需要的4个部分是 10万亿 8960亿 4500万 和 56873 我所做的是删除所有空格 然
  • 如何重试已消耗的 Observable?

    我正在尝试重新执行失败的已定义可观察对象 一起使用 Retrofit2 和 RxJava2 我想在单击按钮时重试特定请求及其订阅和行为 那可能吗 service excecuteLoginService url tokenModel Ret
  • 卸载后 Web 应用程序不显示“添加到主屏幕”

    这是我第一次创建网络应用程序 我设法解决了这个问题 所以我得到了实际的 chrome 提示 将其添加到主屏幕 然后我从手机上卸载了该网络应用程序 因为我想将其展示给我的同事 但是 屏幕上不再出现提示 问题 这是有意为之的行为还是我的应用程序
  • CardView 圆角获得意想不到的白色

    When using rounded corner in CardView shows a white border in rounded area which is mostly visible in dark environment F
  • 无法获取log.d或输出Robolectrict + gradle

    有没有人能够将 System out 或 Log d 跟踪从 robolectric 测试输出到 gradle 控制台 我在用Robolectric Gradle 测试插件 https github com robolectric robo
  • 如何以编程方式检查 AndroidManifest.xml 中是否声明了服务?

    我正在编写一个库 该库提供了一项服务 其他开发人员可以通过将其包含在他们的项目中来使用该服务 因此 我无法控制 AndroidManifest xml 我在文档中解释了要做什么 但一个常见的问题是人们忽略了将适当的 标记添加到其清单中 或者
  • Android Activity 生命周期函数基础知识

    我正在测试这段代码 它显示活动所处的状态 public class Activity101Activity extends Activity String tag Lifecycle Called when the activity is
  • CollapsingToolBarLayout - 状态栏稀松布颜色不改变

    几天前我更新了我的 android studio 并开始使用 CoordinatorLayout 和 CollapsingToolbarLayout 只是尝试一些东西 工具栏稀松布颜色似乎覆盖了状态栏初始颜色和状态栏稀松布颜色 从 xml
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 你的CPU不支持NX

    我刚刚下载了 android studio 但是我遇到了一个问题 当我运行它时 它说你的 cpu 不支持 NX 我应该怎么办 NX 或实际上是 NX 处理器位 是处理器的一项功能 有助于保护您的 PC 免受恶意软件的攻击 当此功能未启用并且
  • Google 云端硬盘身份验证异常 - 需要许可吗? (v2)

    我一直在尝试将 Google Drive v2 添加到我的 Android 应用程序中 但无法获得授权 我收到 UserRecoverableAuthIOException 并显示消息 NeedPermission 我感觉 Google A
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • Android Studio - Windows 7 上的 Android SDK 问题

    我对 Google i o 2013 上发布的最新开发工具 Android Studio 有疑问 我已经成功安装了该程序并且能够正常启动 我可以导入现有项目并对其进行编辑 但是 当我尝试单击 SDK 管理器图标或 AVD 管理器图标时 或者
  • 我的设备突然没有显示在“Android 设备选择器”中

    我正在使用我的三星 Galaxy3 设备来测试过去两个月的应用程序 它运行良好 但从今天早上开始 当我将设备连接到系统时 它突然没有显示在 Android 设备选择器 窗口中 我检查过 USB 调试模式仅在我的设备中处于选中状态 谁能猜出问
  • Android 套接字和 asynctask

    我即将开始制作一个应该充当 tcp 聊天客户端的应用程序 我一直在阅读和阅读 我得出的结论是最好 如果不需要 将我的套接字和异步任务中的阅读器 问题是我不确定从哪里开始 因为我是 Android 新手 这至少对我来说是一项艰巨的任务 但据我
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 将 Intent 包装在 LabeledIntent 中以用于显示目的

    要求 我的应用程序中有一个 共享 按钮 我需要通过 Facebook 分享 我需要选择是否安装原生 Facebook 应用程序 我们的决定是 如果未安装该应用程序 则将用户发送到 facebook com 进行分享 当前状态 我可以检测何时

随机推荐

  • 从 Linux 为 Windows 交叉编译静态库

    我想在linux下为windows编译静态库 以下是我编译的过程 在linux中使用编译静态库的源代码i586 mingw32msvc cc c static lib c o static lib o 在linux中创建静态库ar rv s
  • UITextField 上的强密码叠加

    我面临着奇怪的覆盖UITextField 我正在使用类型字段textContentType password and isSecureTextEntry true 我还有眼睛按钮 可以通过更改来取消隐藏密码字符isSecureTextEnt
  • Kendo-Grid 列字段验证

    我正在努力使用 API 数据填充 kendo grid 但在一个字段上添加验证也会自动适用于所有其他字段 这是 kendo dataSource 内部的架构 schema model id id fields id editable fal
  • Android 上的 ORMLite 不调用 onCreate

    使用 ORMLite v 4 40 我尝试让我的应用程序运行 但它似乎忽略了 onCreate 函数 我的 DatabaseHelper 看起来像这样 片段样式 public class ORMLiteHelper extends OrmL
  • 动态创建函数/子程序的 AutoHotkey 热键

    自动热键命令Hotkey允许在运行时创建动态热键 但其语法和文档似乎将其限制为内置或现有标签 子例程 这使得much不太有用 热键 键名 标签 选项 有没有办法让它像常规的硬编码热键一样工作 例如 z MsgBox foobar Typic
  • SQL:显示标准差内的平均值和最小值/最大值

    我有以下 SQL 表 Date StoreNo Sales 23 4 34 4323 00 23 4 23 564 00 24 4 34 2345 00 etc 我正在运行一个查询 返回特定时间段内的平均销售额 最大销售额和最小销售额 se
  • Intellij IDEA:找不到“JdbcTemplate”类型的bean

    Intellij IDEA 15 0 3 表示 JdbcTemplate bean 不存在 这是一个 Spring Boot 项目 因此所有需要的 bean 都应该在 boot 内部创建 它工作正常 我可以与我的数据库交互 但 IDEA 将
  • 用于运行 DiskPart 的批处理文件

    我正在尝试开发一个批处理文件来运行并删除 Windows 7 中的隐藏分区 当尝试删除所有分区时 通常我在命令提示符窗口中逐行执行此操作 但试图找出如何创建批处理文件来运行并加快此过程 以下是我在命令提示符下键入的行 disk part R
  • 终结器在其对象仍在使用时启动

    Summary C NET 应该被垃圾收集 C 有一个析构函数 用于清理资源 当对象 A 在我尝试克隆其变量成员之一的同一行被垃圾回收时会发生什么 显然 在多处理器上 有时垃圾收集器会获胜 问题 今天 在 C 培训课程中 老师向我们展示了一
  • 程序化屏幕截图歪曲了最近邻居

    我遇到了屏幕截图 以编程方式使用下面的代码 与图像放大 在我的情况下非常远 并渲染最近邻以保留硬边缘时屏幕上实际显示的内容之间的不一致 我从这些论坛获得了以下屏幕截图代码 但保存的是图像的 双线性 渲染而不是最近邻 UIGraphicsBe
  • 如何在postgresql中将bigint(以毫秒为单位的时间戳)值写入为时间戳

    我试图将我的值存储在带有时区字段的时间戳中 从 1970 年开始以毫秒为单位 select TO CHAR TO TIMESTAMP 1401432881230 DD MM YYYY HH24 MI SS MS 预期的30 5 2014 1
  • 实体框架 - 只有 edmx,没有模板

    我们只想添加 EDMX 文件 而不添加上下文和实体的相应 tt 文件 造成这种情况的原因有多种 但长话短说 我们希望能够拥有 EDMX 并能够在需要时从数据库刷新它 目前 如果我每次 从数据库更新 时删除 tt 文件 它将重新生成我们不需要
  • C# 中的互斥量和信号量是什么?我们需要在哪里实施? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 C 中的互斥量和信号量是什么 我们需要在哪里实施 我们如何在多线程中使用它们 您应该从 MSDN 开始 系统 线程 互斥体 http
  • Paypal Recurring Gem - 暂停付款

    我正在寻找为贝宝经常性宝石 跟随 Rails Cast 设置付款暂停 我不确定是否需要设置 IPN 因为 gem 的文档中没有提及它 我目前拥有的代码不执行任何操作 我在模型中定义了取消重复 但我不确定如何完成代码 因为我很难理解这一切是如
  • 更新 python 包后出现“InvalidRequirement:无效需求,解析错误”错误

    使用更新包 在我的例子中是 IPython 后pip install U ipython运行任何使用入口点的 Python 脚本都会失败并出现以下错误 Traceback most recent call last File home ad
  • 错误:系列的真值不明确 - Python pandas [重复]

    这个问题在这里已经有答案了 我知道这个问题之前已经被问过 但是 当我尝试做一个if声明 我收到错误 我看了这个link https stackoverflow com questions 36921951 truth value of a
  • psql:服务器不支持 SSL,但需要 SSL

    尝试使用命令提示符连接到 postgresql 服务器 使用的命令 psql sslmode require host localhost dbname test 抛出错误 psql 服务器不支持 SSL 但需要 SSL 请帮我解决这个问题
  • 使用 Kotlin 在 Android 应用程序中打开文件选择器

    任务 上传用户可以从设备中选择的图像 我怎样才能打开文件选择器 https en wikipedia org wiki File dialog使用 Kotlin 在 Android 应用程序中按下按钮时出现窗口 在您的活动中 添加按钮单击以
  • WAN 上的 TCP/UDP 套接字服务器

    我用 C 编写了一个套接字服务器 它将用作我参与的一个小型游戏项目的基本设计 套接字服务器在局域网上工作正常 我能够在服务器和客户端之间完全正常通信 然而 在 WAN 上 服务器从客户端接收到所有正确的消息 但客户端没有从服务器接收到任何消
  • 本地化可点击跨度 Android

    我在我的应用程序中使用本地化 english indonesia 然后在活动中我写 class MainActivity AppCompatActivity private lateinit var binding ActivityMain