如何在Android ListView上加粗Java中字符串的一部分?
Posted
技术标签:
【中文标题】如何在Android ListView上加粗Java中字符串的一部分?【英文标题】:How to bold a section of a string in Java on an Android ListView? 【发布时间】:2018-06-04 18:24:16 【问题描述】:我通过 ArrayList Hashmap 传递字符串。我的代码如下;
Adapter1 = new SimpleAdapter(getBaseContext(), myList,
R.layout.content, new String[] "TA", "IA",
new int[]R.id.ta, R.id.ia);
listview.setVerticalScrollBarEnabled(true);
listview.setAdapter(Adapter1);
传递的实际上是 Hashmap 的“TA”和“IA”键的值。他们直接访问 R.id.ta、R.id.ia 的 TextViews。
如何只加粗该文本的一部分。例如,它包含一个数字,我只想加粗该数字。 (我不想完全加粗 R.id.ta、R.id.ia)
请帮忙。谢谢!
【问题讨论】:
Making part of a string bold in textview的可能重复 我不能像链接中提到的那样使用 StyleSpan,因为我的值位于通过 SimpleAdapter 设置的 ArrayList Hashmap 中。你读过这个问题吗? 您需要从字符串中获取数字并使用 Spannable 字符串将该数字加粗 首先,我不知道如何将字符串转换为新字符串。这就是这个问题的症结所在。然后我可以考虑编辑字符串。 从***.com/questions/26306135/…这样的字符串中获取数字 【参考方案1】:试试这个
String sourceString = "<b>" + boldText + "</b> " + normalText;
mytextview.setText(html.fromHtml(sourceString));
【讨论】:
首先,我不知道如何将字符串转换为新字符串。这就是这个问题的症结所在。然后我可以考虑编辑字符串。 为什么要投反对票,您知道如何将特定字符串加粗吗?【参考方案2】:我看到您正在使用自定义布局。然后您可以执行以下操作
有两种方法可以使某些文本变粗
-
HTML 文本
SpannableStringBuilder
可以在SO post 找到一个有用的帖子。如果您只想突出显示/加粗数字,则可以使用正则表达式来实现。相同SO post的有用示例
【讨论】:
我无法使用这些,因为我的值位于通过 SimpleAdapter 设置的 ArrayList Hashmap 中。 您是否检查了第二个选项,即 SpannableStringBuilder。毕竟它会给你一个字符串,你可以在你的字符串数组中传递它。 SpannableStringBuilder str = new SpannableStringBuilder("你的真棒文本"); str.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD), INT_START, INT_END, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 首先,我不知道如何将字符串转换为新字符串。这就是这个问题的症结所在。然后我可以考虑编辑字符串。 如果你不知道如何实现相同的,那你为什么要否决我的答案??以上是关于如何在Android ListView上加粗Java中字符串的一部分?的主要内容,如果未能解决你的问题,请参考以下文章
android怎样对listview中的textview设置中文加粗,textStyle只英文有效
如何在 android 的 ExpandableListView 中添加三级 ListView
android ListView 嵌套GridView 子Item点击加载Activity