android條列式對話框 - android dialog setitem



Android:對話框等恢復後,輪換改變 (2)

只要你使用Activity#showDialog來顯示它和Activity#onCreateDialog就可以創建它: http : //developer.android.com/reference/android/app/Activity.html#showDialog%28int%29

http://developer.android.com/reference/android/app/Activity.html#onCreateDialog%28int,%20android.os.Bundle%29

旋轉屏幕後如何恢復對話框? 例如,彈出一個alertDialog來告訴用戶一些信息。 然後用戶將屏幕旋轉到另一個方向。 如何恢復alertDialog? 任何人都可以指導我做這件事嗎? 謝謝!

稍後添加:

我看著Android的源代碼,並找到這些東西:

對話框存儲在mManagedDialogs ,相關的信息是:

mManagedDialogs = new SparseArray<ManagedDialog>();

onSaveInstanceState相關:

final void performSaveInstanceState(Bundle outState) {
    onSaveInstanceState(outState);
    saveManagedDialogs(outState);
}

saveManagedDialogs ,它與mManagedDialogs

onRestoreInstanceState相關:

final void performRestoreInstanceState(Bundle savedInstanceState) {
    onRestoreInstanceState(savedInstanceState);
    restoreManagedDialogs(savedInstanceState);
}

restoreManagedDialogs ,它與mManagedDialogs

正如您所看到的,對於高級功能,您必須自己完成保存和恢復工作。 當你有很多定制的對話框時,這可能是一個夜晚的母馬。 我沒有嘗試複雜的對話框(輸入EdiText,listView,說)。 這樣,我想提醒用戶:在對話框中輸入信息時切勿旋轉屏幕...或者,在顯示對話框時動態鎖定旋轉。

感謝所有回答我的人。 希望我的信息也能幫到你。


我採取的方法是不允許操作系統在佈局配置更改後重新啟動您的活動。 要做到這一點,請在您希望阻止在清單文件中重新啟動的活動中添加以下行:

 <activity
 android:configChanges="orientation|keyboard"
 ...
 >

或者,您可以在代碼中處理配置更改,以便手動進行一些佈局更改,例如從XML重新加載新視圖。 這是通過覆蓋Activity類中的onConfigurationChanged()方法來完成的:

@Override
public void onConfigurationChanged(Configuration newConfig)
{
    //Handle config changes here, paying attention to
    //the newConfig.orientation value
    super.onConfigurationChanged(newConfig);
}

編輯:添加“|鍵盤”的配置更改列表





restore