Android 设置特定重复模式中Listview项的颜色
我想知道如何创建一个循环,以便在重复出现的模式中为每个listview项设置特定的背景颜色。假设我有10件物品和4种颜色,我希望10件物品按照图案的顺序上色,并重复上色,直到所有物品都上色。考虑到我在整数数组中有以下颜色:Android 设置特定重复模式中Listview项的颜色,android,listview,loops,android-listview,Android,Listview,Loops,Android Listview,我想知道如何创建一个循环,以便在重复出现的模式中为每个listview项设置特定的背景颜色。假设我有10件物品和4种颜色,我希望10件物品按照图案的顺序上色,并重复上色,直到所有物品都上色。考虑到我在整数数组中有以下颜色: int[] colours = {Color.RED, Color.BLUE, Color.GREEN, Color.MAGENTA}; 好的,我将为此实现一个定制的适配器或ViewBinder 对于适配器,例如ArrayAdapter,您必须覆盖getView方法 ...
int[] colours = {Color.RED, Color.BLUE, Color.GREEN, Color.MAGENTA};
好的,我将为此实现一个定制的
适配器
或ViewBinder
对于适配器
,例如ArrayAdapter
,您必须覆盖getView
方法
...
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = getActivity().getLayoutInflater().inflate(R.layout.item, null);
}
view.setBackgroundColor(colors[position % colors.length]);
return view;
}
....
好的,我将为此实现一个定制的
适配器
或ViewBinder
对于适配器
,例如ArrayAdapter
,您必须覆盖getView
方法
...
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = getActivity().getLayoutInflater().inflate(R.layout.item, null);
}
view.setBackgroundColor(colors[position % colors.length]);
return view;
}
....
首先,你必须清楚两件事:
getView()的过程中进行
getView()
呈现行,但不按顺序呈现。性能在很大程度上取决于布局实现,但不能保证按顺序呈现行- 在将数据传递到
之前,请在ArrayAdapter
中定义一个额外变量,如果尚未使用该类,则应使用该类ArrayList
- 为其指定要设置的背景编号。理想情况下,这应该是一个带有
颜色的
int
- 在
getView()方法中进行处理后,获取该行的数据并调用:
YourClass item = (YourClass) getItem[position]; convertView.setBackgroundColor(item.getMyColor());
getView()的过程中进行
getView()
呈现行,但不按顺序呈现。性能在很大程度上取决于布局实现,但不能保证按顺序呈现行- 在将数据传递到
之前,请在ArrayAdapter
中定义一个额外变量,如果尚未使用该类,则应使用该类ArrayList
- 为其指定要设置的背景编号。理想情况下,这应该是一个带有
颜色的
int
- 在
getView()方法中进行处理后,获取该行的数据并调用:
YourClass item = (YourClass) getItem[position]; convertView.setBackgroundColor(item.getMyColor());