android - 使用 ArrayAdapter/SimpleAdapter 在 ListView 上将一项加粗

标签 android listview

我正在尝试创建一个简单的 ListView。 ListView 上显示的项目只是我拥有的数组中的字符串。只是我只希望其中一个字符串以粗体显示。 起初,当我使用一个长 TextView,其中包含所有带有换行符标签的字符串时,我可以简单地使用

<b> </b>

围绕我想在 gui 上以粗体显示的字符串,这样:

TextView tv.setText(Html.fromHtml(str));

但是在 ScrollView 中使用一个大的 TextView 会导致其他问题,并且当您有 ListView 来解决这个问题时,这似乎是一个糟糕的选择。所以现在我使用 ListView,它从 ArrayList 获取所有字符串并显示它们。只有这样,无论我如何尝试扭转局面,我似乎都无法将一项的样式更改为粗体。我还尝试为每个字符串创建一个 TextView,然后将 TextView 添加到列表中,但我不知道 ArrayAdapter 或 SimpleAdapter 是否可以做到这一点。 SimpleAdapter 似乎只能获取 TextView 作为资源 ID,这对于列表中的所有项目都是相同的,这使我无法实现我想要的。

长话短说:在这里研究了这个问题后,我知道有一些方法可以为自定义适配器扩展 BaseAdapter,允许列表的任何自定义布局,但真的没有其他方法吗?我真的需要实现 BaseAdapter 和 @override getItem 只是为了使一个项目变为粗体吗?这对我来说似乎很奇怪。有谁知道我可以将 TextViews 添加到 ListView 的方法吗?使用 ArrayAdapter 显示 TextViews toString :/
如果您知道另一种仅显示一个粗体项目的简单方法,我将非常感谢您的帮助。谢谢!

最佳答案

好吧,我终于决定通过制作一个扩展 ArrayAdapter 的自定义适配器来解决这个问题。那里有很多例子,但在我看来,其中一些提供了很多额外的东西并且使这个问题过于复杂,我只是想体面地解决这个问题。我找到了 this example非常有用和友好,在我在这里的研究中,我看到很多开发人员提出了类似的问题,所以我真的希望这对你也有帮助。

扩展 ArrayAdapter 的适配器并不太复杂,而且还允许您以相当简单的方式完全按照自己的方式进行布局。适配器完成后,您只需将 html 标签添加到源数组中的特定字符串,当您将它们绑定(bind)到适配器上时,使用 Html.fromHtml 。我就是这样解决的。
如果有人知道是否有办法在 ListView 的不同特定项目中制作粗体或彩色文本而无需自己进行此调整(扩展 ArrayAdapter 并覆盖 getItem()),请与我们分享。
/> 我希望这对其他人有帮助。

关于android - 使用 ArrayAdapter/SimpleAdapter 在 ListView 上将一项加粗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12553934/

相关文章:

android - 尝试从纬度和经度坐标设置 map 时位置显示不正确

android - tablelayout 在 scrollview 中给出错误

C# 线程 ListView

android - 如何在 jetpack compose 中使用 retrofit API 创建 ListView / GridView /回收器 View

服务器或客户端的 Android 分页

java - Android:在RecyclerView中显示AsyncTask的数据

android - 相机拍摄的两张图像无法从 DC​​IM/Camera 文件夹中删除一张

java - 从 Asynctask 返回数组列表

listview - 将静态项目附加到从数据库数据生成的 ListView.builder

android - ListView 不显示任何内容并隐藏数据