可以从列表中的数据在Android列表视图项目上设置项目/视图样式吗?

时间:2012-04-14 06:18:06

标签: android listview

我有一个从sqlite数据库填充的列表,数据值范围从-1到1.有没有办法将负项目的背景颜色设置为红色,将正项目设置为绿色?通过向项目视图添加绿色向上箭头以显示正值,向下箭头图像添加负值,可以获得类似的效果。另一个示例可能是待办事项列表,其中的项目由优先级值进行颜色编码。在ios中,这将发生在cellforrowat indexpath和windows phone / silverlight上,它将通过将依赖属性绑定到数据来完成。这可以通过Android实现吗?

3 个答案:

答案 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方法中,您可以检查该值并以编程方式更改每个项目的颜色或可绘制方式。