我有一個自定義佈局的對話框片段(AddAlarmDialogFragment
),點擊TextView後又開始另一個對話框TimePickerFragment
。兩個對話框片段之間的通信Android
TimePickerFragment顯示TimePickerDialog。
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
return new TimePickerDialog(getActivity(),TimePickerDialog.THEME_HOLO_LIGHT, this, hour, minute,
true);
}
到目前爲止一切正常,但我想TimePickerFragment約採摘時間將信息傳遞到父DialogFragment
我做TimePickerFragment實施TimePickerDialog.OnTimeSetListener,
覆蓋回調方法onTimeSet(TimePicker view, int hourOfDay, int minute)
。
我也宣佈我的界面中TimePickerFragment
public interface OnTimePickedListener {
void timePicked(int hour, int minutes);
}
方法timePicked(int hour, int minutes)
被稱爲內onTimeSet(TimePicker view, int hourOfDay, int minute)
這是回調
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
OnTimePickedListener onTimePickedListener=
OnTimePickedListener)getParentFragment();
onTimePickedListener.timePicked(hourOfDay,minute);
}
的整個代碼這裏是一個問題,我想將時間從TimePickerDialog
傳遞到AddAlarmDialogFragment
,所以DialogFragment是h推出TimePickerFragment
有什麼辦法從父dialogFragment獲取此接口的實例。或者,也許有更好的方法來提供這兩個組件之間的溝通,因爲對於我定義OnTimePickedListener
幾乎與TimePickerDialog.OnTimeSetListener
幾乎完全相同的方法看起來不知道哪個代碼是乾淨的。
因此'TimePickerFragment'啓動'TimePickerDialog',並且你希望'TimePickerDialog'的一些數據能夠返回到'TimePickerFragment'? – Jon
我編輯我的問題,使其更清晰。我想將數據傳遞給打開TimePickerFragment的AddAlarmDialogFragment。這兩個類都擴展了DialogFragment。我的目標是在AddAlarmDialogFragment的文本視圖中編輯顯示時間選擇器的時間。 – GosiaK
使用事件處理這類問題;發佈者/訂閱者設計模式應該工作;谷歌EventBus庫的android – Eenvincible