Listview项目按内容格式化

时间:2014-06-12 23:34:24

标签: java android

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

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

我该怎么做呢?你能用下面的东西吗?

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

1 个答案:

答案 0 :(得分:1)

由于您提到使用ArrayAdapter,因此您应该扩展ArrayAdapter类并覆盖getView方法,以便按照您希望格式化的方式有条件地返回视图。因此,为了格式化包含文本" No"的视图,请执行类似以下操作:

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;

此外,为了防止文本视图的ID将来发生变化,您可以覆盖构造函数以将TextView的id保存在字段中并使用它代替硬编码的id