Я пытаюсь увеличить количество циклов for for из обратного вызова, я не хочу, чтобы они увеличивались, если анимация не закончилась. К сожалению, я сталкиваюсь с проблемой, когда он рекомендует установить переменные (J и I) в final, а затем говорит, что я не могу их увеличивать, потому что они заключены в ".Цикл нарастания от обратного вызова/прослушивателя
Что можно сделать для увеличения переменных i и j при вызове onAnimationEnd?
public static void animateMarkerToICSNew(final Marker marker, AnimationRouteObj animationRouteObj) {
List<CoordsTimePair> mCoordsTimePairList = animationRouteObj.getCoordsTimePairList();
for (int i = 0; i < mCoordsTimePairList.size();) {
CoordsTimePair mCoordsTimePair = mCoordsTimePairList.get(i);
int timeInMS = (mCoordsTimePair.getSeconds() * 1000);
LinkedHashSet<LatLng> latlngHashSet = mCoordsTimePair.getLatlngHashSet();
final List<LatLng> latlngList = new ArrayList<LatLng>(latlngHashSet);
for (int j = 0; j < latlngList.size();) {
final LatLngInterpolator latLngInterpolator = new Linear();
latLngInterpolator.interpolate(1, marker.getPosition(), latlngList.get(j));
TypeEvaluator<LatLng> typeEvaluator = new TypeEvaluator<LatLng>() {
@Override
public LatLng evaluate(float fraction, LatLng startValue, LatLng endValue) {
return latLngInterpolator.interpolate(fraction, startValue, endValue);
}
};
Property<Marker, LatLng> property = Property.of(Marker.class, LatLng.class, "position");
ObjectAnimator animator = ObjectAnimator.ofObject(marker, property, typeEvaluator, latlngList.get(j));
animator.setDuration(timeInMS);
animator.addListener(new AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animator animation) {
//INCREMENT INSIDE HERE
}
@Override
public void onAnimationCancel(Animator animation) {
// TODO Auto-generated method stub
}
});
animator.start();
}
}
}
Ошибки я получаю не может относиться к неконечной локальным переменной J, определенной в области видимости (Это, прежде чем объявить переменную в качестве окончательного)
В последней локальной переменной J не может быть назначено, поскольку он определен в закрытом типе (Это после того, как я присвою переменную как окончательную)
«i ++;» и 'j ++;' в этих областях не работают для вас? – ChrisStillwell
Нет, это не сработает. Я отправлю полученные ошибки. –