[英]Single listview item color change
I have a listview
with 3 columns(timeschedule). 我有一个3列(时间表)的
listview
。 First is time when bus leaves station, second is description of bus line and third is difference between the time when the bus leaves the station and the system time. 第一个是公共汽车离开车站的时间,第二个是公共汽车线路的描述,第三个是公共汽车离开车站的时间与系统时间之间的差。
So I want to change the color of items (bus lines) which are passed. 所以我想更改通过的项目(总线)的颜色。 I know that
listview
has a method setBackgroundColor
, but it works only for all items. 我知道
listview
有一个方法setBackgroundColor
,但它仅适用于所有项目。
Is there some method which specifies items? 有一些指定项目的方法吗? Or i must change adapter settings?
还是我必须更改适配器设置?
Thank you, 谢谢,
EDIT: Too complex for me :( I started with android just 3 weeks ago. Can anyone try implement Bhaskar answer in this code, so maybe i will get it. 编辑:对我来说太复杂了:(我三周前才开始使用android。任何人都可以尝试在此代码中实现Bhaskar答案,所以也许我会得到它。
mylist = new ArrayList<HashMap<String, String>>();
mylistglava = new ArrayList<HashMap<String, String>>();
/********** Display the headings ************/
map1 = new HashMap<String, String>();
map1.put("Polazak", "Polazak:");
map1.put("Opis", "Napomena:");
map1.put("Kreceza", "Krece za:");
mylistglava.add(map1);
try {
adapterglava = new SimpleAdapter(this, mylistglava,
R.layout.vrijemebus, new String[] { "Polazak", "Opis",
"Kreceza" }, new int[] { R.id.Polazak, R.id.Opis,
R.id.Kreceza });
list_glava.setAdapter(adapterglava);
} catch (Exception e) {
e.printStackTrace();
}
/********************************************************/
/********** Display the contents ************/
for (int i = 0; i < bus.vrijeme.length; i++) {
map2 = new HashMap<String, String>();
map2.put("Polazak", bus.vrijeme[i]);
map2.put("Krece za", kreceza[i]);
if (i < bus.opis.length)
map2.put("Opis", bus.opis[i]);
else
map2.put("Opis", " ");
mylist.add(map2);
}
try {
adapter = new SimpleAdapter(this, mylist, R.layout.vrijemebus,
new String[] { "Polazak", "Opis", "Krece za" }, new int[] {
R.id.Polazak, R.id.Opis, R.id.Kreceza });
list.setAdapter(adapter);
} catch (Exception e) {
e.printStackTrace();
}
list.setSelection(pozicija);
/********************************************************/
}
Thanks again, Matija 再次感谢,Matija
You Have to do it in Adapter getView() method ... 您必须在Adapter getView()方法中执行此操作...
MyAdapter extends SimpleAdapter {
private ArrayList<Integer> coloredItems = new ArrayList<Integer>();
public MyAdapter(...) {
super(...);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
//Here you can add your method/code to change the color.
return v;
}
} }
You can also change color in listview item xml, if you want to set color to the columns. 如果要为列设置颜色,还可以在listview项目xml中更改颜色。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.