如何在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

如何设置 android.support.design.widget.tablayout的选择的文本进行加粗显示

如何在 Android 中处理 ListView 点击

ListView里面怎么添加图片和文字??