package com.itbox.grzl.activity;
import com.zhaoliewang.grzl.R;
import kankan.wheel.widget.OnWheelChangedListener;
import kankan.wheel.widget.OnWheelScrollListener;
import kankan.wheel.widget.WheelView;
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 SelectDoubleNumberActivity extends SelectAbstractActivity implements OnClickListener, OnWheelChangedListener, OnWheelScrollListener {
public static class Extra{
public static final String SelectedID = "selected_id";
public static final String SelectedItem = "selected_item";
public static final String SelectedItemStr = "selected_item_string";
public static final String Button0_Text = "button_0_text";
public static final String Button1_Text = "button_1_text";
public static final String ButtonCancel_Text = "button_cancle_text";
public static final String Max = "max";
public static final String Min = "min";
/**按键选择界面返回值*/
public static final int Button_0 = 0,
Button_1 = 1,
Selected_enter = 2,
Selected_cancle = -1;
}
private WheelView wvLeft;
private WheelView wvRight;
private boolean isScrolling;
private int max;
private int min;
private int rightMin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_select_double_number);
setSelectView(findViewById(R.id.wheel_ll));
findViewById(R.id.wheel_cancel).setOnClickListener(this);
findViewById(R.id.wheel_ok).setOnClickListener(this);
wvLeft = (WheelView)findViewById(R.id.wheel_left);
wvRight = (WheelView)findViewById(R.id.wheel_right);
Intent data = getIntent();
max = data.getIntExtra(Extra.Max, 200);
min = data.getIntExtra(Extra.Min, 1);
rightMin = min;
wvLeft.setViewAdapter(new NumericWheelAdapter(this, min, max));
wvRight.setViewAdapter(new NumericWheelAdapter(this, min, max));
wvLeft.addChangingListener(this);
wvRight.addChangingListener(this);
wvLeft.addScrollingListener(this);
wvRight.addScrollingListener(this);
show();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.wheel_cancel:
dismiss();
break;
case R.id.wheel_ok:
// 返回数据
Intent data = new Intent();
data.putExtra(Extra.Min, wvLeft.getCurrentItem() + min);
data.putExtra(Extra.Max, wvRight.getCurrentItem() +rightMin);
setResult(RESULT_OK, data);
dismiss();
break;
default:
break;
}
}
@Override
public void onChanged(WheelView wheel, int oldValue, int newValue) {
if(!isScrolling){
switch (wheel.getId()) {
case R.id.wheel_left:
refreshRight();
break;
default:
break;
}
}
}
@Override
public void onScrollingStarted(WheelView wheel) {
isScrolling = true;
}
@Override
public void onScrollingFinished(WheelView wheel) {
isScrolling = false;
switch (wheel.getId()) {
case R.id.wheel_left:
refreshRight();
break;
default:
break;
}
}
private void refreshRight(){
int temp = wvLeft.getCurrentItem() + min;
if((rightMin + wvRight.getCurrentItem()) > temp){
wvRight.setCurrentItem(rightMin + wvRight.getCurrentItem() - temp);
}else{
wvRight.setCurrentItem(0);
}
rightMin = temp;
wvRight.setViewAdapter(new NumericWheelAdapter(this, rightMin, max));
}
@Override
public String toString() {
return "选择活动人数";
}
}