0

我有一個帶有ListView的片段。該ListView充滿了一個適配器。從AlertDialog刷新片段

我啓動一個DialogFragment,在那裏我可以在ListView上爲當前行輸入數據。

現在我想在對話框關閉時刷新對話框下的片段。

如何刷新ListView?我無法從片段外部調用notifyDataSetChanged()。

我讀了一些關於回調加載器的內容,但是我使用數組填充ListView。據我所知,回調Loader我必須使用光標。

我也試着調用一個活動的函數,但是我也無法調用notifyDataSetChanged()。使適配器靜態不起作用。

我希望有人瞭解我的問題,並可以halp來解決它。

回答

0

您可以將調用片段設置爲偵聽器。

FragmentManager fm = getSupportFragmentManager(); 
MyDialog d = new MyDialog(); 
d.setDataChangeListener(this); 
d.show(fm, "fragment_name"); 
1

在你的情況下,我會將Adapter實例傳遞給創建對話框的類。我沒有看到任何其他解決方案。

您也可以在Fragment類中創建對話框並將OnClickListener定義爲內部類,以便您可以直接訪問適配器。

你也可以使用類似事件總線的東西,這對於蝨子耦合有很大幫助。