후로!
첫 안드로이드 앱을 쓸 때 손을 꼽고 벽돌 벽에 부딪 혔습니다.SharedPreferences 및 TimePickerDialog
사용자가 일일 일정에 대해 '시작'및 '중지'시간을 설정하도록 허용하려고합니다. 나는 TimePickerDialog와 TextView를 옆에 성공적으로 구현했다. 그러나 나는 LifePreferences 문자열에 사용자가 선택한 시간을 저장하는 방법을 생각할 수 없다.
@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;
}
내가 시간이 텍스트 뷰가 업데이트되는 동시에 저장해야한다고 가정 ...하지만 난 방법을 몰라 다음과 같이
코드 (명확성을 위하여 옷을 벗었)입니다 do -.-
나는 이제 5 ~ 6 시간 동안 좋은 결과를 보냈지 만 문자 그대로 찾을 수는 없다. 나는 SharedPreferences.Editor를 실험했지만 시간이 아닌 String으로 저장해야하기 때문에 작동하지 않습니다.
나는 로프의 끝 부분에있어, 정말 도움이 될만한 !! 이 후
// updates the time we display in the TextView
private void updateDisplayStart() {
mTimeDisplayStart.setText(
new StringBuilder()
.append(padStart(mHourStart)).append(":")
.append(padStart(mMinuteStart)));
});
SharedPreferences settingsActivity = getSharedPreferences("todolist1",
Activity.MODE_PRIVATE);
SharedPreferences.Editor prefEditor = settingsActivity.edit();
prefEditor.putString("DateToDisplay",new StringBuilder()
.append(padStart(mHourStart)).append(":")
.append(padStart(mMinuteStart)); // updates the time we display in the TextView
prefEditor.commit();
}
이제까지 어디에서 다음과 같은 방법
"starttime"을 현재 시간으로 설정하지 않습니까? 그래도 사용해 보겠습니다. 감사합니다! – TrippySquidsman
이것은 샘플 코드입니다. 긴 데이터를 환경 설정에 넣으면 자신 만의 방식으로 수정할 수 있습니다. – Dharmendra
그리고 cal.getTimeInMillis()는 piker 대화 상자에서 설정 한 날짜를 반환합니다 .. – Dharmendra