2011-09-15 45 views
1

我有一個監視應用程序,顯示一組四個參數作爲動畫(例如,它使用溫度計圖形顯示溫度)。我還有一個屏幕可以繪製圖表上的所有四個參數值。根據方向提供不同的_functionality_(不僅僅是佈局)?

我的要求是這樣的:

  1. 每當設備處於風景模式,應顯示該圖表。
  2. 每當設備回到縱向模式時,應顯示較早的動畫屏幕。

我想知道是否可以根據方向提供不同的功能。我看到2個選項

  1. 覆蓋Activity.onConfigurationChanged() - 但那麼是什麼?我現在可以做setContentView()嗎?或者,我可以啓動一個不同的活動(其中一個在單獨的僅用於lanscape模式的活動中顯示圖表)?
  2. 重寫Application.onConfigurationChanged()方法。但坦率地說,我不知道如何繼續這樣做。

回答

1
  1. 是的,你可以調用setContentView()Activity.onConfigurationChanged()。您可以檢查方向並相應地執行一些任務,即根據方向運行不同的代碼。

  2. 正常行爲是當方向改變時,系統殺死活動並創建一個新活動。您可以在您的活動清單中使用android:configChanges="orientation"來阻止這種情況。在這種情況下,您需要重寫onConfigurationChanged(..)方法,該方法將在更改發生時調用。請參閱handling runtime changes.

+0

感謝您的迴應。我也很好奇如何使用Application類的'onConfigurationChanged'方法(而不是'Activity')。這是因爲我可能不得不增強我的應用程序,使其以縱向模式顯示4個不同選項卡中的值;但在橫向模式下;它應該全部被一個圖表屏幕取代。在這種情況下,我將如何攔截僅在「TabActivity」上的'onConfigurationChanged'而不是其中的各個選項卡中的活動? – curioustechizen

相關問題