我有以下listview:
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1" >
</ListView>
我想更新其第n列的背景颜色。
我正在使用:
int numOfMessages=lst.length-lstNew.length;
ArrayAdapter<String> adpt = new ArrayAdapter<String>(Messages.this, android.R.layout.simple_list_item_1,lst);
lm.setAdapter(adpt);
for (int i=1;i<numOfMessages;i++)
{
tv.setText("Welcome " + i);
lm.getChildAt(i).setBackgroundColor(Color.BLUE);
tv.setText("Welcome : " + i);
}
但是行有问题:
lm.getChildAt(i).setBackgroundColor(Color.BLUE);
因为在那之后控制没有进一步发展。
请帮我改变textview的背景颜色。
答案 0 :(得分:1)
试试这段代码:
ArrayAdapter<String> adpt = new ArrayAdapter<String>(Messages.this, android.R.layout.simple_list_item_1,lst){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
v.setBackgroundColor(Color.BLUE);
return v;
}
};
答案 1 :(得分:1)
你可以通过:
ArrayAdapter<String> adpt = new ArrayAdapter<String>(Messages.this, android.R.layout.simple_list_item_1,lst){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
if(position==2){
v.setBackgroundColor(Color.BLUE);
}else if(position==4){
v.setBackgroundColor(Color.RED);
}
return v;
}
};
对于你想要的那一行,就像这样......
答案 2 :(得分:0)
首先你应该将lm.getChildAt(i)转换为这里的具体类型...... 例如:如果lm.getChildAt(i)是类似的textview写:
TextView txtv1 = (TextView)lm.getChildAt(i);
txtv1.setBackgroundColor(Color.BLUE);