![](/img/trans.png)
[英]Adding an object to a list before onCreate method in an Activity in android studio
[英]Android SQLite convert time in onCreate method before passing it into object
當前,我有一個TimePickerDialog,用戶將在其中選擇時間,並將時間傳遞到對象的參數中,以在SQLite數據庫中創建一行。 我想將時間以24小時的形式存儲在數據庫中,但是我希望以12小時的格式將其顯示給用戶。 這是我的TimePickerDialog代碼:
TimePickerDialog.OnTimeSetListener time = new
TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
if (hourOfDay < 10) {
hourString = "0"
+ hourOfDay;
} else {
hourString = String.valueOf(hourOfDay);
}
if (minute < 10) {
minuteString = "0" + minute;
} else {
minuteString = String.valueOf(minute);
}
String twentyFourTime = hourString + ":" + minuteString;
tvScheduleTime.setText(twentyFourTime);
}
};
然后在我的onCreate方法上,我從tvScheduleTime
獲取了保存到數據庫中的時間
btnSaveSchedule.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// schedule items
String scheduleName = etScheduleName.getText().toString();
String scheduleDesc = etScheduleDesc.getText().toString();
String scheduleDate = Day + " " + selectedMonth + " " + Year;
String scheduleTime = tvScheduleTime.getText().toString();
int routeID = 12345;
Log.w("RESULTS", scheduleTime + scheduleDate);
DatabaseScheduleHelper db = new DatabaseScheduleHelper(getApplicationContext());
db.addSchedule(new ObjectSchedule(scheduleTime, scheduleDate, scheduleName, scheduleDesc, routeID));
}
});
本質上,我的問題是,我希望scheduleTime
以24小時格式在ObjectSchedule
對象中傳遞,但ObjectSchedule
中的文本以12小時格式 tvScheduleTime
。 但是,如何從TimePickerDialog偵聽器向我的onCreate方法返回二十twentyFourTime
時間的值? 然后,從那里我將可以完成所有轉換。
如果我做對了,您只是想要一種在獲得時立即將軍事時間轉換為正常時間的方法(通過數據庫或通過OnTimeSetListener獲得)? 如果是這樣,下面的方法應該可以工作(未經測試)。
int hr =
從數據庫或從TimeListener中獲取
hr = convertToNormalTime(hr);
private int convertToNormalTime(int militaryTime){
int hr = militaryTime;
if(hr > 12){
hr = militaryTime - 12; // to convert military to normal time always subtract by 12
}
return hr;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.