原文地址:http://blog.csdn.net/intbird
目前项目只需要分钟的间隔,所以小时和月的间隔没有做,spiner有坑,做的不好,以后有空再重写一下;
解释参数
private int MAX_LIMITE_DAY = 30;//最大可选日期
private int EVERY_MININTES_SPCE= 10;//分钟间隙
private int MIN_MININTES_AFTER = 15;//当前时间到最近可用时间的间隔(最小时间段);
最小时间间隔的解释,
如果分钟间隙为1,最小间隔是1,那么就是自然分钟数1-59;
最小间隔15分钟 如果当前时间是10:00 那么最近一次可用的时间为 10:20,因为分钟每10分钟一个档,15分钟在第二档;
最小间隔15分钟 如果当前时间是10:40 那么最近一次可用的时间为 11:00;
最小间隔10分钟 如果当前世界是10:00,那么最近一次可用的时间为 11:10;10分钟一个档;
代码
package com.idonoo.shareCar.ui.commom.activitys;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.TimeZone;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import com.idonoo.frame.model.BookTimeRule;
import com.idonoo.shareCar.R;
import com.idonoo.shareCar.app.IntentExtra;
import com.idonoo.shareCar.uiframe.BaseActivity;
public class TimePickerActivity extends BaseActivity {
private int MAX_LIMITE_DAY = 30;//最大可选日期
private int EVERY_MININTES_SPCE= 10;//分钟间隙
private int MIN_MININTES_AFTER = 15;//最小时间段
private List<String> listDates = new ArrayList<String>(),
listHours = new ArrayList<String>(),
listMinuts = new ArrayList<String>();
private Spinner spDate, spHour, spMinute;
private ArrayAdapter<String> datesAdapter, hourAdapter, minuteAdapter;
private TextView tvChooseTip;
private Calendar calendar;
private int currentYear;
private int currentMonth;
private int currentDay;
private int currentHour;
private int currentMinute;
private boolean isAddNewHour = false,isOnlyHour=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_picker_time);
initDefultBookTime();
initUI();
initData();
}
@Override
protected void initUI() {
super.initUI();
TextView tvCacel = (TextView) findViewById(R.id.cacel);
TextView tvSelect = (TextView) findViewById(R.id.select);
tvCacel.setOnClickListener(viewListener);