我有一个自定义布局的对话框片段(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