android - SpannableString 不起作用 - 显示未更改的数据
问题描述
有谁知道为什么以下代码不会更改数据?添加了“过期”字符串,但字体颜色和大小均未更改。
Spannable expired = new SpannableString(" expired");
expired.setSpan(new ForegroundColorSpan(Color.RED), 0, expired.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
expired.setSpan(new RelativeSizeSpan(.5f), 0, expired.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
nameTextView.setText(goalsName + expired);
xml:
<TextView
android:id="@+id/goal_list_name_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="22sp"
android:layout_marginBottom="8sp"
android:focusable="true"
tools:text="Cel 1" />
解决方案
你已经使用了Spannable
,你应该使用SpannableString
。如下更改您的代码。
String s = "oldString"+" expired";
SpannableString expired= new SpannableString(s);
expired.setSpan(new ForegroundColorSpan(Color.RED), 10, s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
expired.setSpan(new RelativeSizeSpan(.5f), 10, s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
nameTextView.setText(expired);
推荐阅读
- c# - CefSharp Wpf 缺失方法
- c# - 播放 YouTube 的 C# LibVLCSharp 问题
- r - 用不同的比例绘制 2 y 轴
- flutter - 我试图在颤振上创建一个启动画面。它显示像这样的错误
- node.js - 包含来自另一个数组的任何子字符串的数组?
- flutter - 如何通过控制childAspectRatio在颤动中显示PagedGridView中项目的原始高度
- c - 在优化算法中“缓存残差”是什么意思?
- java - ohengine.jdbc.spi.SqlExceptionHelper: 错误: 列 cliententi0_.name 不存在
- c++ - 什么是“int (*arr)[cols]”,其中“cols”是 C++ 中的变量?
- android - 使用自定义 testInstrumentationRunner 的问题