2014-03-31 34 views
1

的出現在我的ListView,我想第一個項目有一個特別的風格,而其他項目有規則佈局由適配器名爲:只需改變一次的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添加,因爲我可能不得不在某個時候刪除它,適配器不會讓我這樣做(如果實際上有辦法這麼做,請拍!)。

回答

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); 

    ... 
} 
+2

即將寫出相同的答案。但是我認爲第一個元素有位置0? – donfuxx

+0

不要忘記,他還需要稍後刪除該項目 –

+0

@donfuxx正確,我更新了我的答案,謝謝。 – nKn

0

你實際上需要做的是創建你的自定義適配器,它將支持不同的項目類型。比你可以做任何你想要的物品:添加或從列表中刪除它們並致電notifyDataSetChanged()