Я пытаюсь бесконечно анимировать (поворачивать) ImageView в событии Button onClick, а затем останавливать его на другой кнопке onClick. Вот мой код...
public class MainActivity extends Activity{
ObjectAnimator animation;
public void onCreate(Bundle icicle) {
...
Button start = (Button) findViewById(R.id.startbutton);
start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ImageView iv = (ImageView) findViewById(R.id.wheel);
ObjectAnimator animation = ObjectAnimator.ofFloat(iv, "rotation", 360);
animation.setInterpolator(null);
animation.setRepeatCount(animation.INFINITE);
animation.setDuration(1000);
animation.start();
Log.i(TAG, String.valueOf(animation)); // returns the animation object
}
});
Button stop = (Button) findViewById(R.id.stopbutton);
stop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.i(TAG, String.valueOf(animation)); // returns null
animation.cancel();
}
});
Анимация запускается и работает нормально. Однако приложение аварийно завершает работу, когда нажимается кнопка остановки, поскольку объект «анимация» выглядит нулевым.
Pavol Celuch
, ваша переменная анимации всегда имеет значение null, когда доступ осуществляется нажатием кнопки остановки. - person Jibяaᴎ Khaᴎ   schedule 20.11.2014