Home > Mobile >  Saving progressbar progress when changing to landscape(Android,Java)
Saving progressbar progress when changing to landscape(Android,Java)

Time:09-13

I am trying to save the progress of a progressbar when changing screen oriantation. I really dont know where to look for the answer and hope someone here could help me.

XML

        android:id="@ id/pb"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="90dp"
        android:layout_marginEnd="90dp"
        app:layout_constraintBottom_toTopOf="@ id/textViewBokstaver"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@ id/textViewTittel"
        app:layout_constraintVertical_bias="0.448" />```

Java
pb = (ProgressBar) findViewById(R.id.pb);
        pb.setVisibility(ProgressBar.VISIBLE);
        counter = 0;
        pb.setMax(15);

counter  ;
pb.setProgress(counter);

I have button where everytime it get clicked on will increase the progress, but when i change the oriantation the progress resets.

Thanks in advance.

CodePudding user response:

Save your progress value in onSaveInstanceState():

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt("prog_key", counter);
}

Restore your value in onCreate():

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        counter = savedInstanceState.getInt("prog_key");
        pb.setProgress(counter); //ProgressBar must be initialized before this
    }
}
  • Related