![](/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.