Извините, что мне снова нужна ваша помощь. Я действительно пытаюсь решить все эти проблемы самостоятельно, но поскольку с этого года я занимаюсь кодированием Android, я все еще время от времени поражаюсь.
Я пытался сделать Time Picker. Если я делаю это в новом проекте, он работает отлично. Но как только я помещаю его в свое «оригинальное приложение», приложение запускается до View 3, где у меня есть Time Picker. Я также могу открыть Time Picker. Я выбираю время, но как только я нажимаю «ОК», он говорит: «К сожалению, приложение остановилось. Нажав кнопку «ОК», я возвращаюсь к представлению 2. Я уже пытался реорганизовать Код, удалил Эмулятор и создал новый. Неважно, что я делаю, это не работает. Возможно ли, что у меня все еще неправильный порядок в классе, потому что я пытаюсь добавить разные атрибуты в приложение, которое я узнал независимо друг от друга?
Я думаю, что TimePickerFragment должен быть правильным, потому что сборщик работает, но здесь я добавляю его снова:
public class TimePickerFragment extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(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()));
}
}
Я добавил сборщик времени в классе ниже
public class MainActivity extends AppCompatActivity implements TimePickerDialog.OnTimeSetListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_Main);
Calendar calendar = Calendar.getInstance();
String currentDate = DateFormat.getDateInstance(DateFormat.DATE_FIELD).format(calendar.getTime());
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
String time = format.format(calendar.getTime());
TextView textViewDate = findViewById(R.id.Date);
textViewDate.setText(currentDate);
TextView textView = findViewById(R.id.Time2);
textView.setText(time);
EditText editText = (EditText) findViewById(R.id.Time1);
editText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment timePicker = new TimePickerFragment();
timePicker.show(getSupportFragmentManager(), "time picker");
}
});
}
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
TextView textView = (TextView)findViewById(R.id.time);
textView.setText(hourOfDay + ":" + minute);
}
}