2011-10-19 96 views
1

我有一個以下代碼的活動。Timepicker get在屏幕上丟失的時間旋轉

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    // set time picker values 
    TimePicker picker = (TimePicker) findViewById(R.id.startTimePicker); 

    picker.setIs24HourView(true); 

    picker.setCurrentHour(10); 
    picker.setCurrentMinute(15);   
} 

因此,一個時間選擇器被設置爲一個固定的時間,這符合預期。 但是,當我旋轉屏幕和活動獲得的重新創建時間選擇器顯示在所有字段中相同的值 - 而不是值集。這發生在屏幕上的一個,兩個或更多時間選擇器上。

有沒有人可以解釋這種奇怪的行爲?

+0

你在哪裏設置開始時間和結束時間? –

+0

startTime和endTime被正確設置(使用調試器進行檢查)。這不是問題。 – Drejc

+0

@Drejc當你旋轉屏幕時,活動的'onCreate'函數被再次調用,所以值被重置。這個是正常的。你的意思是不同的? –

回答

0

顯然,當您將時間選擇器設置爲調用onResume()時,問題已解決。

這真的很奇怪,因爲onCreate也被稱爲旋轉和方法被擊中, 但是必須有一些控制本身的一些邏輯調用它導致的。

因此,這裏的「修正」:

@Override 
protected void onResume() 
{ 
    super.onResume(); 
    TimePicker picker = (TimePicker) findViewById(R.id.startTimePicker); 

    picker.setCurrentMinute(10); 
    picker.setCurrentHour(12); 
}