glomadrian / material-animated-switch

A material Switch with icon animations and color transitions
1.18k stars 158 forks source link

NPE when call toggle() in inital state. #22

Open HubertWo opened 7 years ago

HubertWo commented 7 years ago

What I am trying to do: set switch state to PRESS right after application starts. Every time I get Null Pointer Exception, because switch is in INIT state.

How to reproduce bug:

protected void onCreate(Bundle savedInstanceState) {

  if (shouldBeOn && !materialAnimatedSwitch.isChecked()) {
    materialAnimatedSwitch.toggle();
  }

}

Cause:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.animation.ValueAnimator.start()' on a null object reference at com.github.glomadrian.materialanimatedswitch.painter.BallPainter.setState(BallPainter.java:108) at com.github.glomadrian.materialanimatedswitch.MaterialAnimatedSwitch.setState(MaterialAnimatedSwitch.java:139) at com.github.glomadrian.materialanimatedswitch.MaterialAnimatedSwitch.doActionDown(MaterialAnimatedSwitch.java:164) at com.github.glomadrian.materialanimatedswitch.MaterialAnimatedSwitch.toggle(MaterialAnimatedSwitch.java:178)`

githubdoramon commented 7 years ago

Use #17 solution for now... I did the same.... But it should be a way to set initial state