2011-03-09 127 views
0

嘿傢伙,我正在做一個Android應用程序,我想顯示一個關於法律協議的對話框,每次應用程序啓動時,我有一個公共方法showalert(<>);通過與alertbuilder建立對話來顯示alertdialog。我在主要活動的onCreate()方法上添加了對showalert()方法的調用以顯示它,但每當用戶旋轉屏幕時,他都會每次獲取對話框。當手機旋轉時,該活動會自動重新啓動。我嘗試在我的清單中添加android:configChanges =「keyboardHidden | orientation」,但對這種情況沒有幫助。我也可以知道如何在清單文件上註冊一個新的應用程序類。我正在嘗試創建一個應用程序類並將代碼顯示在新類的oncreate方法上的對話框中。但是當應用程序啓動時,我無法加載該類。Android活動重啓

我也檢查了Activity restart on rotation Android但我似乎沒有得到一個東西。我幾乎是Android編程的新手,有人能爲我簡化嗎?

任何幫助,將不勝感激。 :)

回答

1

你也許可以看一下onRetainNonConfigurationInstance()活動方法,該方法在屏幕方向更改銷燬並重新創建活動之前調用。

它可以讓你保持一個對象,它可以例如包含測試變量要知道,如果你的合法的事情已經顯示或不..例如:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    final String test = (String) getLastNonConfigurationInstance(); 
    if (!("textAlreadyShown").equals(test)) { 
     //here : show your dialog 
    } 
} 

@Override 
public String onRetainNonConfigurationInstance() { 
    return "textAlreadyShown"; 
} 
+0

好吧我部分得到了你所說的,就像你能給我一個實例代碼,它實際上在屏幕更改之前保存了一個變量布爾值,以及如何在變更後獲取該變量。預先感謝我的身邊:) – KSubedi 2011-03-09 02:43:48

+0

真棒!非常感謝!正是我一直在尋找的日子! :) – KSubedi 2011-03-09 02:46:19

+0

不客氣:) – darma 2011-03-09 02:48:17

0

將主要活動設置爲僅顯示法律聲明的活動,接受/清除時顯示第二個活動(當前是主要活動)?

+0

感謝您的答覆,我就給你一個現在就試試。 :) – KSubedi 2011-03-09 02:30:00

+0

謝謝,但我發現了一個更簡單的解決方案,這種方法需要更改我的班級文件。我計劃在我的下一個應用程序中使用它。 :D – KSubedi 2011-03-09 03:07:06