Hurro!
Я пробую себя в написании своего первого приложения для Android, и я ударил по кирпичной стене.SharedPreferences и TimePickerDialog
Я хочу разрешить пользователю устанавливать «старт» и «остановку» для ежедневного расписания. Я успешно реализовал TimePickerDialog и TextView рядом с ним, но я не могу для LIFE меня выяснить, как сохранить выбранное пользователем время в строку SharedPreferences.
код выглядит следующим образом (урезанная для наглядности):
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.setup);
// Retrieve the shared preferences
mUserSettings = getSharedPreferences(USER_PREFERENCES, MODE_PRIVATE);
// capture our View elements
mTimeDisplayStart = (TextView) findViewById(R.id.TextView_ScheduleStart_Info);
mPickTimeStart = (Button) findViewById(R.id.Button_ScheduleStart);
// add a click listener to the button
mPickTimeStart.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showDialog(TIME_DIALOG_START);
}
});
// get the current time
final Calendar c = Calendar.getInstance();
mHourStart = c.get(Calendar.HOUR_OF_DAY);
mMinuteStart = c.get(Calendar.MINUTE);
// display the current date
updateDisplayStart();
}
// updates the time we display in the TextView
private void updateDisplayStart() {
mTimeDisplayStart.setText(
new StringBuilder()
.append(padStart(mHourStart)).append(":")
.append(padStart(mMinuteStart)));
}
private static String padStart(int c) {
if (c >= 10)
return String.valueOf(c);
else
return "0" + String.valueOf(c);
}
// the callback received when the user "sets" the time in the dialog
private TimePickerDialog.OnTimeSetListener mTimeSetListenerStart =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHourStart = hourOfDay;
mMinuteStart = minute;
updateDisplayStart();
}
};
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case TIME_DIALOG_START:
return new TimePickerDialog(this,
mTimeSetListenerStart, mHourStart, mMinuteStart, false);
}
return null;
}
Я предполагаю, что время должно быть сохранено в то же самое время, что TextView обновляется ... но я не знаю, как сделайте это -.-
Я потратил 5 или 6 часов на поиски ответа, но я буквально не могу его найти. Я экспериментировал с SharedPreferences.Editor, но это не сработает, потому что мне нужно сохранить время как длинное, а не строковое.
Я нахожусь в конце моей веревки, и я очень благодарен за помощь!
Это не просто установило '' starttime ''на текущее время? Я попробую его тем не менее. Спасибо! – TrippySquidsman
Это пример кода для поместите большие данные в предпочтение, вы можете изменить это по-своему. – Dharmendra
И cal.getTimeInMillis() вернет дату, которую вы установили во время диалога piker. – Dharmendra