java - 按内容格式化 ListView 项目

标签 java android

我想根据其内容格式化 ListView 条目。我想在我的 ListView 中找到包含文本“No”的任何元素,并对元素执行以下操作:

  • 将文本居中
  • 将此元素的背景设置为颜色,例如#000000

我该如何去做呢?你能使用类似下面的东西吗?

if((String) parent.getAdapter().getItem(something)==("No")) {Do something};

最佳答案

既然您提到使用 ArrayAdapter,您应该扩展 ArrayAdapter 类并重写 getView 方法,以按您想要的方式有条件地返回 View 将它们格式化。因此,为了格式化专门包含文本“否”的 View ,请执行类似于以下操作的操作:

View v = super.getView(position, convertView, parent);
TextView t = (TextView)v.findViewById(R.id.id_of_your_text_view);
if (t.getText().toString().equals("No")) {
    // center the text and set bg color
}
return v;

此外,以防万一您的 TextView 的 id 将来会发生变化,您可以重写构造函数以将 TextView 的 id 保存在字段中,并使用它来代替硬编码。 -编码ID。

关于java - 按内容格式化 ListView 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24195540/

相关文章:

java - 将数千行插入 mysql 数据库的最快方法?

android - Nativescript 在 debug.apk 上构建发布 apk 成功时失败

android - 刷新同一 Activity 中剩余的当前 fragment (ListView 数据)

java - 在 android 中将 contentView 设置为 Web View 后返回到 Activity contentView

java - 如何编写正确的 zipfile 校验和值,并将其作为 zipfile 内容的一部分

java - Hadoop 2.6.0 HDFS 输出文件夹

java - 尝试导出/部署我创建的 Eclipse 插件,Eclipse 提示 ANT 类路径错误

java - 使用 Byte Buddy 的检测问题

java - 为什么 SimpleDateFormat 会忽略区域设置?

android - 来自其他应用程序但相同用户标识/进程的 bindService