У меня есть система сигнализации, где я хочу, чтобы пользователь установил время для уведомления о тревоге.Я пытался получить значение диалогового окна выбора времени в текстовом представлении, но оно не работает.Timepicker также находится на фрагменте, так что, возможно, именно поэтому он не работает.
public class fragment1_myreminders extends Fragment implements TimePickerDialog.OnTimeSetListener {
private static final String TAG = "fragment1_myreminders";
private Button mtimePickerButton;
private TextView mTextView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1_myreminders,container,false);
mtimePickerButton = view.findViewById(R.id.timePickerButton);
mTextView = view.findViewById(R.id.setTime);
mtimePickerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment timepicker = new dialog_timePicker();
timepicker.show(getActivity().getSupportFragmentManager(), "TIME PICKER FRAG");
}
});
return view;
}
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,hourOfDay);
calendar.set(Calendar.MINUTE,minute);
calendar.set(Calendar.SECOND,0);
updateTimeText(calendar);
startAlarm(calendar);
}
private void updateTimeText(Calendar calendar) {
String timeText = "Alarm set for : ";
timeText+= DateFormat.getTimeInstance(DateFormat.SHORT).format(calendar.getTime());
mTextView.setText(timeText);
}
}
, и мой класс диалога выбора времени выглядит следующим образом
public class dialog_timePicker extends DialogFragment {
private TimePickerDialog.OnTimeSetListener listener;
public dialog_timePicker() {
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_timepicker,container,false);
TextView mTextView = view.findViewById(R.id.setTime);
return view;
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
final Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
return new TimePickerDialog(getActivity(), listener, hour, minute, DateFormat.is24HourFormat(getActivity()));
}
}