2014-11-03 57 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