在我的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>
答案 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()