2014-03-28 30 views
1

的顏色是我的ListView適配器類我想改變最後位置值的顏色,假設我的ListView顯示了6個元素,我想改變第6個元素的顏色,我將如何做到這一點???我想改變最後一個元素文本的唯一的顏色如何更改最後一個listview適配器索引

public class CustomAlertAdapter extends BaseAdapter{ 
TextView titlename; 
Context ctx=null; 
ArrayList<String> listarray=null; 
private LayoutInflater mInflater=null; 
public CustomAlertAdapter(Activity activty, ArrayList<String> list) 
{ 
    this.ctx=activty; 
    mInflater = activty.getLayoutInflater(); 
    this.listarray=list; 
} 
@Override 
public int getCount() { 

    return listarray.size(); 
} 

@Override 
public Object getItem(int arg0) { 
    return null; 
} 

@Override 
public long getItemId(int arg0) { 
    return 0; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup arg2) {  
    final ViewHolder holder; 
    if (convertView == null) { 
     holder = new ViewHolder(); 
     convertView = mInflater.inflate(R.layout.alertlistrow, null); 

     holder.titlename = (TextView) 
     convertView.findViewById(R.id.textView_titllename); 






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







    String datavalue=listarray.get(position); 

    holder.titlename.setText(datavalue); 

    return convertView; 
} 

private static class ViewHolder { 


    TextView titlename; 
     } 
    } 

回答

1

改變顏色,只要改變充氣視圖的特性基於位置在數據結構中

public View getView(int position, View convertView, ViewGroup arg2) { 

// inflate view 
convertView = mInflater.inflate(R.layout.alertlistrow, null); 
... 

// modify view 
if(position == listArray.size()-1){ 
convertView.setBackgroundColor(R.color.some_color_resource_id); 
} 

... 

// return view 
return convertView; 

只要在你返回視圖之前完成getView函數就可以了。

值得記住的是,爲列表中的每個元素調用該位置,並將位置提供給您。

希望這會有幫助

0
public View getView(int position, View convertView, ViewGroup arg2) 

這裏的位置是特定項目的位置。

所以檢查位置==總項目(在你的案件總數可能ArrayList的大小)

convertView.setBackground("Your Color here"); 
+0

這就是我的問題怎麼我會知道現在的位置是最後???? – user3472001

+0

你的arralist大小是你最後的位置。 –

0

您可以檢查位置並相應地更改顏色。例如:

@Override 
public View getView(int position, View convertView, ViewGroup arg2) {  
    final ViewHolder holder; 
    if (convertView == null) { 
     holder = new ViewHolder(); 
     convertView = mInflater.inflate(R.layout.alertlistrow, null); 
     holder.titlename = (TextView) 
     convertView.findViewById(R.id.textView_titllename); 
     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 
    String datavalue=listarray.get(position); 
    holder.titlename.setText(datavalue); 
    int color = (position == getCount() - 1) : Color.BLACK : Color.YELLOW; 
    holder.titlename.setTextColor(color) 
    return convertView; 
} 
1

試試這個裏面getView(..)

if (position == listarray.size()-1) { 
     convertView.setBackgroundColor(Color.BLUE); 
    }