if (isVote.equals("Y")&&"N".equals(isUpdate)) {
CreateNumberColorList();
List<String> countList = datas.get(position).getCountList();
String max = Collections.max(countList);
Integer maxNumber = Integer.valueOf(max);
for(int i = 0;i<datas.get(position).getCountList().size();i++){ //循环添加
LinearLayout pollNumberView = (LinearLayout) View.inflate(ctx, R.layout.poll_column_view, null); //柱状图 view
TextView column_alphabet = (TextView) pollNumberView.findViewById(R.id.tv_column_alphabet); //字母
TextView total_ticket = (TextView) pollNumberView.findViewById(R.id.tv_total_ticket); //选项被投票数
ProgressBar pb = (ProgressBar) pollNumberView.findViewById(R.id.pb); //进度条
//设置最大值
if (datas.get(position).getTpleVoteOption().size()==datas.get(position).getCountList().size()){
switch (i%10) { //先设置颜色gmf
case 0:
pb.setProgressDrawable(voteDrawable.get(0));
break;
case 1:
pb.setProgressDrawable(voteDrawable.get(1));
break;
case 2:
pb.setProgressDrawable(voteDrawable.get(2));
break;
case 3:
pb.setProgressDrawable(voteDrawable.get(3));
break;
case 4:
pb.setProgressDrawable(voteDrawable.get(4));
break;
case 5:
pb.setProgressDrawable(voteDrawable.get(5));
break;
case 6:
pb.setProgressDrawable(voteDrawable.get(6));
break;
case 7:
pb.setProgressDrawable(voteDrawable.get(7));
break;
case 8:
pb.setProgressDrawable(voteDrawable.get(8));
break;
case 9:
pb.setProgressDrawable(voteDrawable.get(9));
break;
default:
break;
}
column_alphabet.setText(letter[i]);
total_ticket.setText(datas.get(position).getCountList().get(i)+"票");
pb.setProgress((Integer.valueOf(datas.get(position).getCountList().get(i))));
pb.setMax(maxNumber);
pb.setBackgroundColor(color.holo_green_dark);
holder.ll_column.addView(pollNumberView);
}
}
以上写的代码,也是可以看出你的实际开发经验
对于这段代码我们写得有多么的繁琐:
switch (i%10) { //先设置颜色gmf
case 0:
pb.setProgressDrawable(voteDrawable.get(0));
break;
case 1:
pb.setProgressDrawable(voteDrawable.get(1));
break;
case 2:
pb.setProgressDrawable(voteDrawable.get(2));
break;
case 3:
pb.setProgressDrawable(voteDrawable.get(3));
break;
case 4:
pb.setProgressDrawable(voteDrawable.get(4));
break;
case 5:
pb.setProgressDrawable(voteDrawable.get(5));
break;
case 6:
pb.setProgressDrawable(voteDrawable.get(6));
break;
case 7:
pb.setProgressDrawable(voteDrawable.get(7));
break;
case 8:
pb.setProgressDrawable(voteDrawable.get(8));
break;
case 9:
pb.setProgressDrawable(voteDrawable.get(9));
break;
default:
break;
其实我们完全可以用一行代码写
pb.setProgressDrawable(voteDrawable.get(i%10));
如果i=0时 看看其实走的就是这一句代码
case:0
pb.setProgressDrawable(voteDrawable.get(0));
break;
那么我们换成这一行代码 pb.setProgressDrawable(voteDrawable.get(i%10));
只要用一个i%10 我们在for循环里 随着i的值变化 我们便可以把所有颜色设置上了。
以上代码其实 是一个投票 的 progressbar 循环添加到一个线性布局上,但在设置颜色的时候会出现问题 如果一个题目多于10个选项 也就是 a-n 如果超过10个progressbar设置的颜色便会出现问题。