我有这个功能sort_by_time
,如果time1
大于time2
,此函数的目的是交换time1
,但我的问题是我有错误未定义的偏移量:0 。有时错误是未定义的偏移量:1 。或未定义的偏移量:2 。有人可以帮我防止我的代码中出现此错误吗?我在过去的3天里都在考虑这个问题,但我无法想到任何解决方案。
在此行中发生错误。
if (Payroll2::convert_time_in_minutes($_time[$j]->time_in) > Payroll2::convert_time_in_minutes($_time[$j+1]->time_in))
发生此错误是因为未设置$_time[0]
。
采样时间。这是动态的,不仅仅限于3
有时它4
,有时它只是5
或1
。
3 => {#6257}
这是我的完整功能代码
public static function sort_by_time($_time)
{
$count = 0;
$n = count($_time);
for ($i = 0; $i < $n-1; $i++)
{
for ($j = 0; $j < $n-$i-1; $j++)
{
if (Payroll2::convert_time_in_minutes($_time[$j]->time_in) > Payroll2::convert_time_in_minutes($_time[$j+1]->time_in))
{
// swap temp and arr[i]
$temp = $_time[$j];
$_time[$j] = $_time[$j+1];
$_time[$j+1] = $temp;
}
}
}
return $_time;
}
答案 0 :(得分:1)
试试这个:
LayerDrawable stars = (LayerDrawable) yourRatingBar.getProgressDrawable();
stars.getDrawable(2).setColorFilter(Color.parseColor("#e7c31b"), PorterDuff.Mode.SRC_ATOP); // for filled stars
stars.getDrawable(1).setColorFilter(Color.parseColor("#e7c31b"), PorterDuff.Mode.SRC_ATOP); // for half filled stars
stars.getDrawable(0).setColorFilter(Color.parseColor("#c2c2c2"), PorterDuff.Mode.SRC_ATOP); // for empty stars
如果不起作用,则问题可能在函数public static function sort_by_time($_time)
{
usort($_time,function($ad,$bd)
{
$ad = Payroll2::convert_time_in_minutes($ad->time_in);
$bd = Payroll2::convert_time_in_minutes($bd->time_in);
if ($ad == $bd) {
return 0;
}
return $ad < $bd ? -1 : 1;
});
return $_time;
}