我有一個活動可能會顯示一些DialogFragments。該活動需要從對話中獲得響應。 我使用了一個偵聽器。在活動:活動被破壞並重新創建後處理重新創建的對話框片段的最佳方式
ProgressMarkDialog dialog = new ProgressMarkDialog();
dialog.setOnProgressMarkSelected(new ProgressMarkDialog.OnProgressMarkSelected() {
@Override
public void onSelect(final int a) {
//some code..
}
});
在對話框:不知何故,直到活動被破壞
public void setOnProgressMarkSelected(OnProgressMarkSelected onProgressMarkSelected) {
this.onProgressMarkSelected = onProgressMarkSelected;
}
此代碼工作正常,但對話框仍處於打開狀態。該程序將因NullPointerException而崩潰,因爲onProgressMarkSelected爲null。
我可以使用
@Override
public void onAttach(final Activity activity) {
super.onAttach(activity);
onProgressMarkSelected = (OnProgressMarkSelected) activity;
}
和執行活動的接口。 但是,如果我有幾個DialogFragments,這意味着我應該在活動中實現少量接口,並且代碼將非常混亂。 這種情況下Android的最佳做法是什麼?
什麼打擾你?活動中的'implements ...'或回調數量? –
是的。工具的數量... – xxx