2014-11-03 62 views
0

我有一個小問題,這可能不是解決最困難的時候,我簡直不敢迄今發現什麼:進度條復位翻轉該設備

在我的應用程序使用連接的進度條到CountDownTimer。當我翻轉設備時,進度條重置爲0,而定時器不會導致時間到,而酒吧仍然在中間某處。縱向/橫向使用兩種不同的佈局文件,但進度條定義沒有區別。

這是java代碼:

mCountDownTimer=new CountDownTimer(6000,50) { 

      @Override 
      public void onTick(long millisUntilFinished) { 
       Log.v("Log_tag", "Tick of Progress"+ i + millisUntilFinished); 
       i++; 
       mProgressBar.setProgress(i); 

      } 

      @Override 
      public void onFinish() { 
       i++; 
       mProgressBar.setProgress(i); 
       Toast toast = Toast.makeText(getApplicationContext(), "Time Up!", Toast.LENGTH_SHORT); 
       toast.show(); 
       if(counter < DBAdapter.NUMBER_OF_QUESTIONS){ 
        i=0; 
        newQuestion(); 
       } 
       else endGame(); 
      } 
     }; 

此XML代碼:

<ProgressBar 
    android:id="@+id/progressBar" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:max="120" 
    android:progress="0" 
    android:visibility="visible" /> 

謝謝您的幫助!

回答

1

請注意,發生翻蓋時,您的活動會被破壞並重新創建。因此局部變量中的值會丟失。

要避免丟失這些值,請使用onSaveInstanceState()onRestoreInstanceState()來存儲進度值並將其恢復。

例,

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putInt("PROGRESS VALUE", i); 
} 

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    i = savedInstanceState.getInt("PROGRESS VALUE"); 
} 

呦可以閱讀更多關於此這裏,

http://developer.android.com/training/basics/activity-lifecycle/recreating.html

您可以瞭解更多關於此這裏。

http://www.youtube.com/watch?v=2VYlTgaAHTs&list=PLlxmoA0rQ-LyCGSSD_nuPAmXDSR_FU0RR&index=31

http://www.youtube.com/watch?v=7XqHvJK9xn4&list=PLlxmoA0rQ-LyCGSSD_nuPAmXDSR_FU0RR&index=32

http://www.youtube.com/watch?v=4LYhbQXu19U&list=PLlxmoA0rQ-LyCGSSD_nuPAmXDSR_FU0RR&index=33

http://www.youtube.com/watch?v=W3NsvUX_Fwo&list=PLlxmoA0rQ-LyCGSSD_nuPAmXDSR_FU0RR&index=34

我希望這有助於你!

+0

謝謝你的幫助,它現在正常工作! – ille 2014-11-03 09:45:28