如何更改上一个listview适配器索引的颜色

时间:2014-03-28 09:33:53

标签: android

下面是我的ListView适配器类我想改变最后位置值的颜色,假设我的ListView显示6个元素,我想改变第6个元素的颜色我将如何做? ?我想只更改最后一个元素文本的颜色

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

4 个答案:

答案 0 :(得分: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函数返回到viewView函数之前就完成了。

值得记住,列表中的每个元素都会被调用,并且会为您提供位置。

希望这有帮助

答案 1 :(得分:1)

getView(..)

中尝试此操作
if (position == listarray.size()-1) {
        convertView.setBackgroundColor(Color.BLUE);
    }

答案 2 :(得分:0)

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

此处位置是特定项目的位置。

所以检查位置==总项目(你的案例中的总数可能是arraylist的大小)

并按

更改颜色
convertView.setBackground("Your Color here"); 

答案 3 :(得分: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;
}