我正在寻找一种有效的方法将我从TimePickerDialog转换为小时和分钟转换为Date对象。
我需要一个方法,它必须知道输入日期是否从现在起12小时()。所以也许你甚至可以在没有使用Date对象的情况下使用这种方法。
PS:在我的TimePickerDialog中,我认为现在每次都在那里()(例如:在8:00设置5:00,在21小时内)。
PS 2:我使用24小时格式。
谢谢:)
答案 0 :(得分:0)
我不认为您将不得不使用Date对象。这是一个简单的例子。让我们假设您有一个按钮,在点击时会显示TimePickerDialog。
Button的onClick()事件看起来像这样
@Override
public void onClick(View v) {
// Process to get Current Time
final Calendar c = Calendar.getInstance();
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);
TimePickerDialog tpd = new TimePickerDialog(this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
pHour = hourOfDay;
int difference = pHour-mHour;
if(difference < 0) {
int remaining = 24 + difference;
if(remaining <= 12) {
// Less than or equal to 12 hours from now
// isValidTime is a boolean variable defined at the top
isValidTime = true;
}
else{
// More than 12 hours
isValidTime = false;
}
}
else {
int remaining = difference;
if(remaining <= 12) {
// Less than or equal to 12 hours from now
isValidTime = true;
}
else{
// More than 12 hours
isValidTime = false;
}
}
// Call your method with the isValidTime parameter
yourMethodThatNeedsBoolean(isValidTime );
}
}, mHour, mMinute,false);
tpd.show();
}
private void yourMethodThatNeedsBoolean(boolean valid) {
if(valid) {
Toast.makeText(MainActivity.this, "Time is valid", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(MainActivity.this, "Time is invalid", Toast.LENGTH_LONG).show();
}
}
请注意,pHour,mHour和mMinute是整数,isValidTime是一个布尔值,我已经在我的代码顶部声明了(这里没有显示)。