package com.itbox.grzl.activity; import java.util.Calendar; import com.itbox.fx.util.DateUtil; import com.zhaoliewang.grzl.R; import kankan.wheel.widget.OnWheelChangedListener; import kankan.wheel.widget.WheelView; import kankan.wheel.widget.adapters.ArrayWheelAdapter; import kankan.wheel.widget.adapters.NumericWheelAdapter; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; /** * 选择起止时间 * @author hyh * creat_at:2013-8-16-上午8:37:25 */ public class SelectDoubleHourActivity extends SelectAbstractActivity implements OnClickListener, OnWheelChangedListener { public static class Extra{ public static final String Time_Earliest = "earliest_time"; public static final String Time_Latest = "latest_time"; public static final String Time_EarliestStr = "earliest_time_string"; public static final String Time_LatestStr = "latest_time_string"; } private WheelView wvBegHour; private WheelView wvBegMinute; private WheelView wvEndHour; private WheelView wvEndMinute; private String[] minutes; private boolean isSettingChanged; private String type; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_select_double_hour); setSelectView(findViewById(R.id.wheel_ll)); findViewById(R.id.wheel_cancel).setOnClickListener(this); findViewById(R.id.wheel_ok).setOnClickListener(this); wvBegHour = (WheelView)findViewById(R.id.wheel_begin_hour); wvBegMinute = (WheelView)findViewById(R.id.wheel_begin_minute); wvEndHour = (WheelView)findViewById(R.id.wheel_end_hour); wvEndMinute = (WheelView)findViewById(R.id.wheel_end_minute); minutes = new String[]{"00"}; // minutes = DateUtil.getMinutes(); wvBegHour.setViewAdapter(new NumericWheelAdapter(this, 0, 23)); wvEndHour.setViewAdapter(new NumericWheelAdapter(this, 0, 23)); wvBegMinute.setViewAdapter(new ArrayWheelAdapter<String>(this, minutes)); wvEndMinute.setViewAdapter(new ArrayWheelAdapter<String>(this, minutes)); wvBegHour.addChangingListener(this); wvEndHour.addChangingListener(this); wvBegMinute.addChangingListener(this); wvEndMinute.addChangingListener(this); wvBegHour.setCyclic(true); wvEndHour.setCyclic(true); show(); int currentHour = DateUtil.getNewCalendar().get(Calendar.HOUR_OF_DAY); Intent intent = getIntent(); type = intent.getStringExtra("type"); if (type.equals("workTime")) { wvBegHour.setCurrentItem(8); wvEndHour.setCurrentItem(20); } else if (type.equals("homeTime")) { wvBegHour.setCurrentItem(22); wvEndHour.setCurrentItem(5); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.wheel_cancel: dismiss(); break; case R.id.wheel_ok: // 返回数据 if(isSettingChanged){ String beginStr = wvBegHour.getCurrentItem()+":"+minutes[wvBegMinute.getCurrentItem()]; String endStr = wvEndHour.getCurrentItem()+":"+minutes[wvEndMinute.getCurrentItem()]; int beginMinute = wvBegHour.getCurrentItem() * 60 + wvBegMinute.getCurrentItem(); int endMinute = wvEndHour.getCurrentItem() * 60 + wvEndMinute.getCurrentItem(); int duringMinute = endMinute - beginMinute; if (duringMinute>=0&&duringMinute<60) { if (type.equals("workTime")) { showToast("工作时间需大于1小时"); } else if (type.equals("homeTime")) { showToast("休息时间需大于1小时"); } return; } Intent data = new Intent(); data.putExtra(Extra.Time_EarliestStr, beginStr); data.putExtra(Extra.Time_LatestStr, endStr); data.putExtra(Extra.Time_Earliest, beginMinute); data.putExtra(Extra.Time_Latest, endMinute); setResult(RESULT_OK, data); } dismiss(); break; default: break; } } @Override public void onChanged(WheelView wheel, int oldValue, int newValue) { isSettingChanged = true; } @Override public String toString() { return "选择起止时间"; } }