2016-02-17 20 views
0

嗨我有一個列表視圖,我想給行的替代顏色,但無法實現它,尤其是當我使用基礎適配器。Android:使用基本適配器時列表視圖的備用顏色

下面是我getView()方法

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View view = convertView; 
    int sectionnum = 0; 
    for(Object section : this.sections.keySet()) { 
     Adapter adapter = sections.get(section); 
     int size = adapter.getCount() + 1; 

     // check if position inside this section 
     if(position == 0) return headers.getView(sectionnum, convertView, parent); 
     if(position < size) return adapter.getView(position - 1, convertView, parent); 


     // otherwise jump into next section 
     position -= size; 
     sectionnum++; 
    } 

    if(position % 2 == 0){ 

     view.setBackgroundColor(Color.BLUE); 
      }else{ 

       view.setBackgroundColor(Color.WHITE); 
      } 
    return view; 


} 
+0

試圖改變行文件的主要父代的顏色。 –

+0

你使用這段代碼的結果是什麼?因爲當我使用我的代碼運行它時它工作得很好。 –

+0

@SayaleePote沒有得到任何提及藍色或白色的顏色 – hari86

回答

1
View view = adapter.getView(position - 1, convertView, parent); 

然後設置這一觀點的背景

,然後再返回這個觀點

你必須寫上面的線,而不是

return adapter.getView(position - 1, convertView, parent); 
+0

能否請您發掘 – hari86

+0

請分享您的xml代碼並完成BaseAdapter代碼。然後我將能夠告訴你確切的代碼。你使用ListView還是RecyclerView? –

+0

我們是否可以將此對話轉移到聊天室以便我可以分享我的代碼 – hari86

1

添加下面的代碼在你的自定義適配器的getView(),以具有替代顏色

ViewHolder holder; 
    if (convertView == null) { 

    convertView = mInflater.inflate(R.layout.list_row_layoutan, null); 

     holder = new ViewHolder(); 
     holder.tv1 = (TextView) convertView.findViewById(R.id.tv1); 
     holder.tv2 = (TextView) convertView.findViewById(R.id.tv2); 
     holder.tv3 = (TextView) convertView.findViewById(R.id.tv3); 


     convertView.setTag(holder); 

    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 




    if(position %2 == 0){ 
     convertView.setBackgroundColor(Color.parseColor("your choice color")); 
    }else{ 
     convertView.setBackgroundColor(Color.parseColor("your choice color")); 
    } 

    return convertView; 

ListView和您的自定義適配器聲明靜態內部類這樣

static class ViewHolder { 
    TextView tv1; 
    TextView tv2; 
    TextView tv2; 
} 
相關問題