Я создал собственный фрагмент Timepicker, расширив фрагмент диалога. но когда я вызываю его из домашнего фрагмента, приложение вылетает, говоря: MainActivity cannot be cast to android.app.TimePickerDialog$OnTimeSetListener
вот мой пользовательский timePickerFragment
public class TimePickerFragment extends DialogFragment{
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
return new TimePickerDialog(getActivity(), R.style.TimePickerTheme,(TimePickerDialog.OnTimeSetListener) getActivity(),hour,minute,DateFormat.is24HourFormat(getActivity()));
}
}
вот откуда я вызываю этот фрагмент:
public class HomeFragment extends Fragment implements AlarmRecyclerViewListener,TimePickerDialog.OnTimeSetListener{
.
.
.
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_home,container,false);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
.
.
.
FloatingActionButton btn = getView().findViewById(R.id.fab_button2);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogFragment timePicker = new TimePickerFragment();
timePicker.show(getChildFragmentManager(),"time picker");
}
});
@Override
public void onTimeSet(TimePicker timePicker, int hour, int minute) {
Log.d("msgg","I'm here");
Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, hour);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND, 0);
mAlarmsDBhelperClass.insertAlarm("","⚡","",hour,minute,"ON",0,db);
startAlarm(c,0,true,hour+minute+1);
}
}
}