仅更改一个ListView项的外观

时间:2014-03-31 22:07:34

标签: java android

在我的ListView中,我希望第一个项目具有特殊样式,而其他项目具有适配器调用的常规布局:

    myAdapt = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_multiple_choice, list);

    // Set Appearance of item 1 here
    //

    myListView.setAdapter(myAdapt);

有办法吗?无法使用addHeaderView方法通过TextView添加项目,因为我可能必须在某个时候删除它,适配器不允许我这样做(如果有实际的方法,那就拍摄!)。< / p>

2 个答案:

答案 0 :(得分:4)

可以自定义此选项的最佳位置是ArrayAdapter,并在getView()方法中进行扩展。

这样,您可以在第二个参数中获得布局(通常称为convertView,但不一定) - 基本上是行的布局,第一个参数(通常称为position) ,引用当前行的当前位置。你可以这样做:

@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
  ...

  if (position == 0)
    convertView.setBackground(R.id.first_row);
  else
    convertView.setBackground(R.id.any_other_row);

  ...
}

答案 1 :(得分:0)

您实际需要做的是创建支持不同项类型的自定义适配器。您可以对项目执行任何操作:在列表中添加或删除它们并调用notifyDataSetChanged()