【发布时间】:2014-04-28 07:02:12
【问题描述】:
我想要一个微调器中的颜色列表,我该怎么做?我不想将 RGB 代码存储在数据库中,您可以直接从 XML 中进行操作吗?你推荐哪种方式?
【问题讨论】:
-
您必须创建一个自定义
Adapter才能执行此操作。
我想要一个微调器中的颜色列表,我该怎么做?我不想将 RGB 代码存储在数据库中,您可以直接从 XML 中进行操作吗?你推荐哪种方式?
【问题讨论】:
Adapter 才能执行此操作。
您可以像这样使用自定义Adapter:
private class ExampleAdapter extends ArrayAdapter<String> {
private final int[] colors = new int [] {
Color.WHITE,
Color.RED,
Color.BLUE
};
private ExampleAdapter(Context context, int resource) {
super(context, resource);
}
private ExampleAdapter(Context context, int resource, int textViewResourceId) {
super(context, resource, textViewResourceId);
}
public ExampleAdapter(Context context, int resource, String[] objects) {
super(context, resource, objects);
}
private ExampleAdapter(Context context, int resource, int textViewResourceId, String[] objects) {
super(context, resource, textViewResourceId, objects);
}
private ExampleAdapter(Context context, int resource, List<String> objects) {
super(context, resource, objects);
}
private ExampleAdapter(Context context, int resource, int textViewResourceId, List<String> objects) {
super(context, resource, textViewResourceId, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
int color = getColorForPosition(position);
view.setBackgroundColor(color);
return view;
}
private int getColorForPosition(int position) {
return colors[position % colors.length];
}
}
您可以像使用任何ArrayAdapter 一样使用此ExampleAdapter,但项目将在顶部定义的背景颜色之间循环。
【讨论】: