Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 基于.database更改listview项的颜色_Android_Sqlite_Android Listview_Background - Fatal编程技术网

Android 基于.database更改listview项的颜色

Android 基于.database更改listview项的颜色,android,sqlite,android-listview,background,Android,Sqlite,Android Listview,Background,这是我在stackoverflow上的第一篇帖子,因为这是我没有找到明确答案的第一件事 我有一个应用程序,可以从android设备读取联系人,并将其保存在sqlite数据库中。我要做的是根据数据库中的.variable更改每个listview行的背景色 更具体地说,我想根据数据库中的一个值更改颜色,该值的范围为1到3,1表示红色,2表示绿色,3表示蓝色。我知道如何改变颜色,如果每一行一次与这样一个自定义适配器 public class SpecialAdapter extends ArrayAd

这是我在stackoverflow上的第一篇帖子,因为这是我没有找到明确答案的第一件事

我有一个应用程序,可以从android设备读取联系人,并将其保存在sqlite数据库中。我要做的是根据数据库中的.variable更改每个listview行的背景色

更具体地说,我想根据数据库中的一个值更改颜色,该值的范围为1到3,1表示红色,2表示绿色,3表示蓝色。我知道如何改变颜色,如果每一行一次与这样一个自定义适配器

public class SpecialAdapter extends ArrayAdapter<String> {
    public SpecialAdapter(Context context, int resource, List<String> objects) {
        super(context, resource, objects);
        // TODO Auto-generated constructor stub
    }



    private int[] colors = new int[] { 0x30FF0000, 0x300000FF };

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      View view = super.getView(position, convertView, parent);

      int colorPos = position % colors.length;
      view.setBackgroundColor(colors[colorPos]);
      View row = convertView;


      return view;
    }
公共类SpecialAdapter扩展了ArrayAdapter{
公共SpecialAdapter(上下文、int资源、列表对象){
超级(上下文、资源、对象);
//TODO自动生成的构造函数存根
}
私有int[]颜色=新int[]{0x30FF0000,0x300000FF};
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图=super.getView(位置、转换视图、父级);
int colorPos=位置%colors.length;
视图.setBackgroundColor(颜色[colorPos]);
视图行=转换视图;
返回视图;
}
}

但是我找不到从listview中读取联系人姓名、从数据库中检索正确的值以及根据从数据库检索的值更改行的颜色的方法


有线索吗?

这是根据条件更改单行颜色的示例。。此代码将位于getView方法内部

    String value =  getItem(position);
    if (value.contentEquals("0")) {
        convertView.setBackgroundColor(getContext().getResources()
                .getColor(R.color.yellow));
    } else if (value.contentEquals("1")) {
        convertView.setBackgroundColor(getContext().getResources()
                .getColor(R.color.white));
    }else if (value.contentEquals("2")) {
        convertView.setBackgroundColor(getContext().getResources()
                .getColor(R.color.red));
    }

使用getItem根据行位置获取放入适配器中的对象。。虽然您只在每一行中添加一个字符串,但我们定义了一个字符串来获取特定行的值,以检查和更改该值的颜色

您的数据库设计是什么?到目前为止,您在从数据库检索数据方面做了哪些工作?我有一个名为databaser的类,用于检索、保存和操作数据库中的数据。我的主要活动是创建一个用于执行sql查询的databaser实例是的,我了解,知道条件如何可以是sqlite数据库读取吗?嗯,我真的不知道你的问题是什么。。但是您是否创建了从sqlite数据库检索数据的方法?您可以从对象中获取每一行的值,即字符串列表。。看到更新的答案这是公认的答案,谢谢,但我注意到这种方法不是很有效!我必须改变我处理这件事的方式!无论如何谢谢你