Я пишу этот код, чтобы показать время в моем проекте, когда я запускаю приложение перестает работать. Однако при удалении метода show программа работает, когда при нажатии кнопки
ничего не отображается.
любая помощь, пожалуйста
это код
public class AlarmFragment extends Fragment implements
TimePickerDialog.OnTimeSetListener{
private Button clockBtn;
private TextView time;
public AlarmFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view= inflater.inflate(R.layout.fragment_alarm, container, false);
time = view.findViewById(R.id.alarm_time);
clockBtn= view.findViewById(R.id.clock_btn);
clockBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment clock= new TimeClock();
///////////show method /////////
clock.show(getActivity().getSupportFragmentManager(),"Time Picker");
}
});
return view;
}
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
time.setText("Time:" + hourOfDay +" : "+minute);
}}
это фрагмент TimeClock
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.DialogFragment;
import java.util.Calendar;
public class TimeClock 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(), (TimePickerDialog.OnTimeSetListener) getActivity(), hour, minute, android.text.format.DateFormat.is24HourFormat(getActivity()));
}
}
Редактировать: - поэтому я изменил оператор return выше, тогда он работает. Но метод onTimeSet в AlarmFragment не выполнялся
Я сделал это следующим образом: -
Activity activity = new AlarmFragment().getActivity();
return new TimePickerDialog(getActivity(), (TimePickerDialog.OnTimeSetListener)activity, hour, minute, android.text.format.DateFormat.is24HourFormat(getActivity()));