我有一个从sqlite数据库填充的列表,数据值范围从-1到1.有没有办法将负项目的背景颜色设置为红色,将正项目设置为绿色?通过向项目视图添加绿色向上箭头以显示正值,向下箭头图像添加负值,可以获得类似的效果。另一个示例可能是待办事项列表,其中的项目由优先级值进行颜色编码。在ios中,这将发生在cellforrowat indexpath和windows phone / silverlight上,它将通过将依赖属性绑定到数据来完成。这可以通过Android实现吗?
答案 0 :(得分:1)
在Android上这很容易做到。每当列表进入视图时,每个列表项都会更新,ListAdapter中有一个getView方法,您可以在其中设置列表项的值。
因此,您只需要列表项的list_item.xml布局。 在Custom ListAdapter中,您可以在getView()方法中设置背景的颜色,您可以在其中设置膨胀(View)list_item。的setBackground()。
检查这些链接: http://techdroid.kbeanie.com/2009/07/custom-listview-for-android.html http://saigeethamn.blogspot.com/2010/04/custom-listview-android-developer.html
答案 1 :(得分:1)
在getView方法中尝试这样..
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
TextView textView = (TextView) rowView.findViewById(R.id.label);
ImageView imageview= (ImageView) rowView.findViewById(R.id.img);
textView.setText(values[position]);
String s = values[position];
if (s.startsWith("-")) {
imageView.setImageResource(R.drawable.uparrow);
//or set background colour of those views here..
} else {
imageView.setImageResource(R.drawable.downarrow);
}
return rowView;
}
答案 2 :(得分:0)
在适配器的getview方法中,您可以检查该值并以编程方式更改每个项目的颜色或可绘制方式。