[英]Android DialogFragment Dismissal
我已經看過與處理DialogFragment中的方向更改有關的幾個問題,並且共同的主題似乎是問者沒有得到任何答案,我什至沒有理解...
因此,我想采用另一種方法...有沒有辦法以編程方式關閉對話框...查看我的LogCat,我可以看到,如果對話框片段處於活動狀態,並且屏幕方向已更改,則我的活動重新開始。
在此過程中,DialogFragment也重新啟動,但這發生在onCreate之后和onResume之前(據我所知)。 對我來說,在對話框中檢測到它很簡單,在這種情況下,我想做的就是中止對話框視圖的創建。 到目前為止,我嘗試過的是這樣的:
if (normal_conditions_detected)
{
View v = inflater.inflate (R.layout.dialog_layout, container, false);
final Dialog d = getDialog();
d.setTitle (R.string.sensor_config);
... more stuff
return v
}
else
{
getDialog().cancel();
return null;
}
這確實避免了我得到的空指針的廢話,但是現在我得到了只能描述為空對話框的內容,即使其中有cancel()命令也是如此。 有沒有辦法讓我的dialogFragment代碼拒絕創建視圖?
旋轉設備時,活動將執行
onSaveInstanceState
方法並保存當前狀態,這意味着它也會在重新創建后保存您的片段狀態
onCreate(Bundle savedInstanceState)
再次使用方法,savedInstanceState保存您的舊數據,在這里您可以進行如下操作
if (savedInstanceState == null){
YourDialogFragment f = new YourDialogFragment()
f.show // etc
}
僅創建片段之后,您無需通過將控件放入片段中,而可以通過活動來對其進行控制
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.