Я пытаюсь передать час и минуту из строки EditText в объект календаря, а затем поставлю час и минуту в Bundle, чтобы установить TimePickerFragment. Строка из ранее выбранного времени, которое пользователь вводит в строку EditText. Я разделил строку на часовые и минутные части, используя «Integer.parseInt». Когда я запускаю, я получаю «Invalid int:« 07PM »[например, это минуты с 5:07 вечера]. Дополнительные строки ошибок говорят« на java.lang.Integer.invalidInt на java.lang.Integer.parse в java . .lang.Integer.parseInt»является ли синтаксический анализ не работает, потому что„PM“в настоящее время включены в расколе Любые другие идеи о том, что является причиной проблемы файлКак пропустить час и минуту в Android Bundle?
активность:?
{ Calendar tcal = Calendar.getInstance();
String timeStr = gEditText.getText().toString().replace(" ", "");
String[]timeParts = timeStr.split(":");
tcal.set(Calendar.HOUR, Integer.parseInt(timeParts[0]));
tcal.set(Calendar.MINUTE, Integer.parseInt(timeParts[1]));
Bundle timebundle = new Bundle();
timebundle.putInt("hour", tcal.get(Calendar.HOUR));
timebundle.putInt("minute", tcal.get(Calendar.MINUTE));
}
TimePicker файл:
public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener {
public Dialog onCreateDialog(Bundle savedInstanceState) {
if (getArguments() != null) {
cal = Calendar.getInstance();
hour = getArguments().getInt("hour");
minute = getArguments().getInt("minute");
cal.set(Calendar.HOUR, Calendar.MINUTE);
}
TimePickerDialog dialog = new TimePickerDialog(getActivity(), this , hour, minute, false);
dialog.setTitle("Select a Due Time");
return dialog;
}
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
txtTime = (EditText) getActivity().getWindow().getDecorView().getRootView().findViewById(R.id.GEditText);
String AM_PM = "";
Calendar displaytime = Calendar.getInstance();
displaytime.set(Calendar.HOUR_OF_DAY, hourOfDay);
displaytime.set(Calendar.MINUTE, minute);
if (displaytime.get(Calendar.AM_PM) == Calendar.AM)
AM_PM = "AM";
else if (displaytime.get(Calendar.AM_PM) == Calendar.PM)
AM_PM = "PM";
String minuteString;
if (minute < 10)
minuteString = "0" + minute;
else
minuteString = "" + minute;
String hours = (displaytime.get(Calendar.HOUR)== 0) ? "12" : displaytime.get(Calendar.HOUR) + "";
txtTime.setText(hours + ":" + minuteString + " " + AM_PM + " ");
txtTime.setSelection(txtTime.getText().length());
}
Хорошо, я думаю, что вижу. В основном удалите AM или PM с минутной порции времени. Верный? Кроме того, почему «час = час + 12»? – AJW
@AJW, потому что 17:07 PM = 17:07 –
Хорошо, и я вижу это, если только для PM раз. Я попробую, спасибо. – AJW