В моем приложении есть алгоритм, которому для правильной работы нужны два значения: начало дня и конец дня. В качестве значений по умолчанию я передаю 360 и 1320 минут (6:00 и 22:00). Но я также хочу сделать их доступными из настроек, чтобы пользователь мог их изменить. В настройках есть два таймпикера:
from.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment timePicker1 = new TimePickerFragment();
timePicker1.show(getSupportFragmentManager(), "BeginningChange");
flag = true;
}
});
to.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment timePicker2 = new TimePickerFragment();
timePicker2.show(getSupportFragmentManager(), "EndingChange");
flag = false;
}
});
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
if (flag){
timeStartChange = hourOfDay * 60 + minute;
Intent intent = new Intent(SettingsActivity.this, IntervalsDialog.class);
intent.putExtra("timeStartChanged", timeStartChange);
}
if (!flag){
timeEndChange= hourOfDay * 60 + minute;
Intent intent2 = new Intent(SettingsActivity.this, IntervalsDialog.class);
intent2.putExtra("timeEndChanged", timeEndChange);
}
}
Я думал, что могу передать их с помощью Intent, а затем просто проверить в другом классе:
private void setIntervals(){
int dayStart;
int dayEnd;
Intent intent = getActivity().getIntent();
dayStart = Integer.parseInt(intent.getStringExtra("timeStartChanged"));
dayEnd = Integer.parseInt(intent.getStringExtra("timeEndChanged"));
if (dayStart == 0 || dayEnd == 0){
dayStart = 360;
dayEnd = 1320;
}
ArrayList<Interval> idealInt = new ArrayList<>();
int dayInterval = (dayEnd - dayStart)/4;
for (int i = dayStart; i < dayEnd; i+= dayInterval) {
idealInt.add(new Interval(i, i + dayInterval));
}
interval1.setText(idealInt.get(0).toString());
interval2.setText(idealInt.get(1).toString());
interval3.setText(idealInt.get(2).toString());
interval4.setText(idealInt.get(3).toString());
}
Но я получаю сообщение об ошибке:
java.lang.NumberFormatException: s == null
at java.lang.Integer.parseInt(Integer.java:570)
at java.lang.Integer.valueOf(Integer.java:794)
at com.example.tryalgorithm.ui.IntervalsDialog.setIntervals(IntervalsDialog.java:90)
at com.example.tryalgorithm.ui.IntervalsDialog.onCreateDialog(IntervalsDialog.java:79)
...
Это не кажется сложной задачей, но я не вижу своей ошибки ... Спасибо за любую помощь.