在listview中有个进度条
进度条会根据进度值的不同,显示不同的颜色
listview第一次生成的时候正常
但是listview刷新的时候,进度条的颜色值会设不进去
代码如下,其中如果将代码pgsignal.setProgress(progress);放在
pgsignal.setProgressDrawable(getResources().getDrawable(R.drawable.progress_bar_gray));
之前的话,第一次设置的时候drawable就设置不进去
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
View Temp = null;
if (null == arg1) {
Temp = mInflater.inflate(R.layout.wirelesslist_item, arg2,false);
} else {
Temp = arg1;
}
ScanResult info = lsScanResult.get(arg0);
ProgressBar pgsignal = (ProgressBar) Temp.findViewById(R.id.pgsignal);
int progress = lsScanResult.get(arg0);
if (progress < 10) {
pgsignal.setProgressDrawable(getResources().getDrawable(R.drawable.progress_bar_gray));
} else if ((progress >= 10) && (info.level < 40)) {
pgsignal.setProgressDrawable(getResources().getDrawable(R.drawable.progress_bar_yellow));
} else if (info.level >= 40) {
pgsignal.setProgressDrawable(getResources().getDrawable(R.drawable.progress_bar_green));
}
if (progress > pgsignal.getMax()) {
progress = pgsignal.getMax();
} else if (progress < 0) {
progress = 0;
}
pgsignal.setProgress(progress); return Temp;
}
}有没有什么办法可以解决
我目前想到的只有每次getview都产生一个新的view ,但是效率明显很低
求其他解决办法
进度条会根据进度值的不同,显示不同的颜色
listview第一次生成的时候正常
但是listview刷新的时候,进度条的颜色值会设不进去
代码如下,其中如果将代码pgsignal.setProgress(progress);放在
pgsignal.setProgressDrawable(getResources().getDrawable(R.drawable.progress_bar_gray));
之前的话,第一次设置的时候drawable就设置不进去
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
View Temp = null;
if (null == arg1) {
Temp = mInflater.inflate(R.layout.wirelesslist_item, arg2,false);
} else {
Temp = arg1;
}
ScanResult info = lsScanResult.get(arg0);
ProgressBar pgsignal = (ProgressBar) Temp.findViewById(R.id.pgsignal);
int progress = lsScanResult.get(arg0);
if (progress < 10) {
pgsignal.setProgressDrawable(getResources().getDrawable(R.drawable.progress_bar_gray));
} else if ((progress >= 10) && (info.level < 40)) {
pgsignal.setProgressDrawable(getResources().getDrawable(R.drawable.progress_bar_yellow));
} else if (info.level >= 40) {
pgsignal.setProgressDrawable(getResources().getDrawable(R.drawable.progress_bar_green));
}
if (progress > pgsignal.getMax()) {
progress = pgsignal.getMax();
} else if (progress < 0) {
progress = 0;
}
pgsignal.setProgress(progress); return Temp;
}
}有没有什么办法可以解决
我目前想到的只有每次getview都产生一个新的view ,但是效率明显很低
求其他解决办法
难道都到外面去更新么
外面更新也不见得有用啊listview里其他图片,文字设置都可以的
就进度条出现不对
论坛上以前有人问过
给链接http://topic.csdn.net/u/20110325/11/49b3fb96-ccf3-4c38-b000-c0411637954d.html
不过好像偶尔还是会出现drawable没画出来的现象