2015-01-29 3 views
0

Я пытаюсь изменить образ ImageButton, когда анимация перевода другого ImageView закончилась. У меня есть AnimatorListener для анимации и хотел бы передать значение ImageButton в методе onAnimationEnd, чтобы я знал, какой ImageButton изменится (некоторые вычисления происходят в коде, чтобы решить, какой Imagebutton изменить). Мой код выглядит следующим образом. Пожалуйста, помогите мне!!!В android Как использовать переменную (не делая ее окончательной) из внешнего класса в методе onAnimationEnd() в AnimatorListener

//animation of an imageview 
ObjectAnimator move =ObjectAnimator.ofFloat(myAnimation1,"translationX",20); 

//calculating which image to change to for the ImageButton 
int id2 = this.getResources().getIdentifier("r" + a[m], "drawable", this.getBaseContext().getPackageName()); 

//adding animtor listener 

move.addListener(new Animator.AnimatorListener(ImageButton,id2) { 
        @Override 
        public void onAnimationEnd(Animator animation) { 
         // TODO Auto-generated method stub 

         ImageButton.setImageResource(id2); //Not able to use ImageButton and id2...says it has to be final but I don't want it to be final 

         ImageButton.setClickable(true); 

        }}); 
+2

Что случилось с окончательным? –

ответ

0

Просто создайте еще одну конечную переменную?

int id2 = this.getResources().getIdentifier("r" + a[m], "drawable", this.getBaseContext().getPackageName()); 

final int idFinal = id2; 

//adding animtor listener 

move.addListener(new Animator.AnimatorListener(ImageButton,id2) { 
        @Override 
        public void onAnimationEnd(Animator animation) { 
         // TODO Auto-generated method stub 

         ImageButton.setImageResource(idFinal); //Not able to use ImageButton and id2...says it has to be final but I don't want it to be final 

         ImageButton.setClickable(true); 

        }}); 
+0

Спасибо за ответ. Это сработало:)!!!!! – Aparna

+0

Но просто хотелось узнать, можно ли передавать значения методу AnimationListener onAnimationEnd. – Aparna

+0

Не от реализации AnimatorListener по умолчанию, вы можете попробовать реализовать свой собственный AnimatorListener, но я не знаю, будет ли это стоить усилий. –

Смежные вопросы