Android timePickerFragment上的侦听器打开取消按钮?
我会使用一个TimePickerFragment来设置一个时间,它工作得很好 我只想在用户单击“取消”按钮时执行一个操作 不幸的是,到目前为止我还没有找到如何做到这一点 这是我的密码: 创建对话框:Android timePickerFragment上的侦听器打开取消按钮?,android,listener,Android,Listener,我会使用一个TimePickerFragment来设置一个时间,它工作得很好 我只想在用户单击“取消”按钮时执行一个操作 不幸的是,到目前为止我还没有找到如何做到这一点 这是我的密码: 创建对话框: public void changeTime(int position) { df = new TimePickerFragment(); df.setActivity(activity); df.show(getSupportFragmentManager(), "time
public void changeTime(int position) {
df = new TimePickerFragment();
df.setActivity(activity);
df.show(getSupportFragmentManager(), "timePicker");
positionItemTime = position;
}
当用户单击“设置”时执行操作:
public void设置时间(整数小时,整数分钟){
visibleCursorNotes.moveToPosition(位置项时间);
int-idSelectedRow=visibleCursorNotes.getInt(visibleCursorNotes.getColumnIndex(“\u-id”);
字符串内容=visibleCursorNotes.getString(visibleCursorNotes.getColumnIndex(“内容注释”);
字符串minuteString=“”;
字符串hourodaystring=“”;
minuteString=“”+分钟;
hourOfDayString=“”+hourOfDay;
如果(分钟<10){
minuteString=“0”+minuteString;
}
如果(小时/天<10){
hourOfDayString=“0”+hourOfDayString;
}
字符串时间=”“+hourOfDayString+”:“+minuteString;
if(content.equals(“”){
content=“添加注释…”;
}
nds.updateNote(idSelectedRow、content、time);
visibleCursorNotes=nds.GetCursorUpdatedDatabaseForDate(visibleDate);
更新数据();
visibleListView.setSelection(位置项时间);
活动。管理声音(“写笔记”);
}
摘要:要捕获单击取消按钮事件以执行操作
谢谢。您可以覆盖onCancel方法来实现这一点
@Override
public void onCancel(DialogInterface dialog)
{
super.onCancel();
// do your action. you can have your own listener which will can be called.
}
以下是基于覆盖的解决方案:
public static class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener,
TimePickerDialog.OnDismissListener{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current time as the default values for the picker
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
// Create a new instance of TimePickerDialog and return it
return new TimePickerDialog(getActivity(), this, hour, minute,
DateFormat.is24HourFormat(getActivity()));
}
public void onDismiss(DialogInterface dialog){
System.out.println("oui c'est très bon !");
}
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// Do something with the time chosen by the user
System.out.println("voila");
}
}
技巧的主要部分是实现TimePickerDialog.OnDismissListener,然后实现函数。谢谢大家。您是否试图从父视图中捕捉此片段的事件?或者您捕获片段内的事件?这是在扩展片段活动的“我的活动”中我认为,如果您想捕获父
活动中的按钮(您的TimePickerFragment
将附加到的活动)的事件,您必须在TimePickerFragment
内创建接口
,然后必须在父活动中实现接口
。
public static class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener,
TimePickerDialog.OnDismissListener{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current time as the default values for the picker
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
// Create a new instance of TimePickerDialog and return it
return new TimePickerDialog(getActivity(), this, hour, minute,
DateFormat.is24HourFormat(getActivity()));
}
public void onDismiss(DialogInterface dialog){
System.out.println("oui c'est très bon !");
}
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// Do something with the time chosen by the user
System.out.println("voila");
}
}