Android ArrayAdapter中的处理

Android ArrayAdapter中的处理,android,android-arrayadapter,listactivity,Android,Android Arrayadapter,Listactivity,我试图在android中使用列表活动来显示内容。 我正在从后端获取一个列表。现在,我想获取每个列表值,并查看该项是以红色显示还是以绿色显示。该值也将在customVO中设置 我试着参考网上的几篇文章。但在这里,他们只使用List,但我需要VO,这样我就可以获取值来决定菜单项应该是红色还是绿色 另外,我是android的初学者,所以如果我的问题有点愚蠢,请原谅。 提前感谢:)只需覆盖getView方法即可设置背景: final ArrayAdapter<MyClass> adapter

我试图在android中使用列表活动来显示内容。 我正在从后端获取一个列表。现在,我想获取每个列表值,并查看该项是以红色显示还是以绿色显示。该值也将在customVO中设置

我试着参考网上的几篇文章。但在这里,他们只使用List,但我需要VO,这样我就可以获取值来决定菜单项应该是红色还是绿色

另外,我是android的初学者,所以如果我的问题有点愚蠢,请原谅。
提前感谢:)

只需覆盖getView方法即可设置背景:

final ArrayAdapter<MyClass> adapter = new ArrayAdapter<MyClass>(
        getActivity(), 
        R.layout.list_item, 
        myArray) {
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        convertView = super.getView(position, convertView, parent);
        /* Set values of TextViews here */
        MyClass currentItem = getItem(position);
        if (currentItem.getColor() == MyVoClass.GREEN) {
           convertView.setBackgroundColor(0x0000FF00);
        } else if (currentItem.getColor() == MyVoClass.RED) {
           convertView.setBackgroundColor(0x00FF0000);
        } else {
           convertView.setBackgroundColor(0x00FFFFFF);
        }
        return convertView;
    }
};
final ArrayAdapter adapter=新的ArrayAdapter(
getActivity(),
R.layout.list_项目,
myArray){
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
convertView=super.getView(位置、convertView、父级);
/*在此处设置文本视图的值*/
MyClass currentItem=getItem(位置);
如果(currentItem.getColor()==MyVoClass.GREEN){
convertView.setBackgroundColor(0x0000FF00);
}else if(currentItem.getColor()==MyVoClass.RED){
convertView.setBackgroundColor(0x00FF0000);
}否则{
convertView.setBackgroundColor(0x00FFFFFF);
}
返回视图;
}
};

只需覆盖getView方法即可设置背景:

final ArrayAdapter<MyClass> adapter = new ArrayAdapter<MyClass>(
        getActivity(), 
        R.layout.list_item, 
        myArray) {
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        convertView = super.getView(position, convertView, parent);
        /* Set values of TextViews here */
        MyClass currentItem = getItem(position);
        if (currentItem.getColor() == MyVoClass.GREEN) {
           convertView.setBackgroundColor(0x0000FF00);
        } else if (currentItem.getColor() == MyVoClass.RED) {
           convertView.setBackgroundColor(0x00FF0000);
        } else {
           convertView.setBackgroundColor(0x00FFFFFF);
        }
        return convertView;
    }
};
final ArrayAdapter adapter=新的ArrayAdapter(
getActivity(),
R.layout.list_项目,
myArray){
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
convertView=super.getView(位置、convertView、父级);
/*在此处设置文本视图的值*/
MyClass currentItem=getItem(位置);
如果(currentItem.getColor()==MyVoClass.GREEN){
convertView.setBackgroundColor(0x0000FF00);
}else if(currentItem.getColor()==MyVoClass.RED){
convertView.setBackgroundColor(0x00FF0000);
}否则{
convertView.setBackgroundColor(0x00FFFFFF);
}
返回视图;
}
};

您所说的“获取每个列表项”是什么意思?这些项目是否已经有关于其颜色的信息(在这种情况下,请使用适配器上的
getItem(position)
),或者您是否打算进行web调用或其他操作?Arraylist来自后端。在向用户显示之前,我希望他们根据输入的vo值绘制成不同的颜色。我不知道vo是什么。我的问题是,当您从服务器获取每个项目时,颜色是否与它们一起出现(这意味着您有颜色信息,但需要对项目对象进行引用),还是需要为每个项目进行额外的服务器调用。是的,该信息在ArrayList中。所以我不需要打任何电话。你说的“获取每个列表项”是什么意思?这些项目是否已经有关于其颜色的信息(在这种情况下,请使用适配器上的
getItem(position)
),或者您是否打算进行web调用或其他操作?Arraylist来自后端。在向用户显示之前,我希望他们根据输入的vo值绘制成不同的颜色。我不知道vo是什么。我的问题是,当您从服务器获取每个项目时,颜色是否与它们一起出现(这意味着您有颜色信息,但需要对项目对象进行引用),还是需要为每个项目进行额外的服务器调用。是的,该信息在ArrayList中。所以我不需要打任何电话。一个查询。。。将为列表中的所有项调用此“MyClass currentItem=getItem(position);”。或者我需要对所有项目使用循环吗?它将为每个项目调用。您不必循环,ListView会根据需要向适配器请求项目。这样做的好处是只渲染可见项的视图,而不是数组中的所有n个项。您只需描述如何在getView()方法中填充单个列表项的UI字段。。。将为列表中的所有项调用此“MyClass currentItem=getItem(position);”。或者我需要对所有项目使用循环吗?它将为每个项目调用。您不必循环,ListView会根据需要向适配器请求项目。这样做的好处是只渲染可见项的视图,而不是数组中的所有n个项。您只需描述如何在getView()方法中填充单个列表项的UI字段。