从TimePickerDialog到日期

时间:2015-05-22 00:40:18

标签: android android-timepicker java.util.date

我正在寻找一种有效的方法将我从TimePickerDialog转换为小时分钟转换为Date对象。

我需要一个方法,它必须知道输入日期是否从现在起12小时()。所以也许你甚至可以在没有使用Date对象的情况下使用这种方法。

PS:在我的TimePickerDialog中,我认为现在每次都在那里()(例如:在8:00设置5:00,在21小时内)。

PS 2:我使用24小时格式。

谢谢:)

1 个答案:

答案 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是一个布尔值,我已经在我的代码顶部声明了(这里没有显示)。