I want to do a very simple thing. I have a listview in my application which I dynamically add text to. But, after a certain point, I would like to change the color of the te
You need to set the text in getView()
. Get the value to set with getItem(pos)
, then set it.
public View getView(int pos, View convertView, ViewGroup parent){
this.v = convertView;
if(v==null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v=vi.inflate(R.layout.gamelistitem, null);
}
// Moved this outside the if blocks, because we need it regardless
// of the value of timeLeft.
TextView tv = (TextView)v.findViewById(R.id.list_content);
tv.setText(getItem(pos));
if(timeLeft!=0) {
//TextView tv = (TextView)v.findViewById(R.id.list_content);
//tv.setText(str[pos]);
tv.setTextColor(Color.GREEN);
}
else {
//TextView tv = (TextView)v.findViewById(R.id.list_content);
//tv.setText(str[pos]);
tv.setTextColor(Color.RED);
}
return v;
}
Also, is there a reason you're storing v
as a member variable, rather than just inside the function?