下面是我的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;
}
}
答案 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;
}