package com.partynetwork.myview.wheelview;
import com.partynetwork.iparty.R;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.os.Handler;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.PopupWindow;
public class WheelPicker extends PopupWindow {
private View view;
/** 左边的按钮 */
private Button leftBtn;
/** 右边的按钮 */
private Button rightBtn;
/** 第一个滚轮 */
private WheelView firstWheel;
/** 第二个滚轮 */
private WheelView secondWheel;
/** 第三个滚轮 */
private WheelView thirdWheel;
private Context mContext;
private int whellNumber;
private WheelAdapter wheelAdapter;
private WheelListener wheelListener;
public WheelPicker(Context context,final int whellNumber, WheelAdapter adapter,
final WheelListener wheelListener) {
super(context);
mContext = context;
this.whellNumber=whellNumber;
this.wheelAdapter=adapter;
this.wheelListener=wheelListener;
view = LayoutInflater.from(context).inflate(R.layout.wheelview_three,
null);
initView();
initWheel();
// 设置SelectPicPopupWindow的View
setContentView(view);
// 设置SelectPicPopupWindow弹出窗体的宽
setWidth(LayoutParams.WRAP_CONTENT);
// 设置SelectPicPopupWindow弹出窗体的高
setHeight(LayoutParams.WRAP_CONTENT);
// 设置SelectPicPopupWindow弹出窗体可点击
setFocusable(true);
// 设置SelectPicPopupWindow弹出窗体动画效果
setAnimationStyle(R.style.AnimBottom);
// 实例化一个ColorDrawable颜色为半透明
ColorDrawable dw = new ColorDrawable(0x00000000);
// 设置SelectPicPopupWindow弹出窗体的背景
setBackgroundDrawable(dw);
}
private void initView() {
leftBtn = (Button) view.findViewById(R.id.left_btn);
rightBtn = (Button) view.findViewById(R.id.right_btn);
firstWheel = (WheelView) view.findViewById(R.id.first_wheel);
secondWheel = (WheelView) view.findViewById(R.id.second_wheel);
thirdWheel = (WheelView) view.findViewById(R.id.third_wheel);
}
/**
* 初始化滚轮
*
* @param wheelAdapter
*/
private void initWheel() {
firstWheel.setAdapter(wheelAdapter);
if (whellNumber == 1) {
secondWheel.setVisibility(View.GONE);
thirdWheel.setVisibility(View.GONE);
} else if (whellNumber == 2) {
firstWheel.addChangingListener(new OnWheelChangedListener() {
public void onChanged(WheelView wheel, int oldValue,
int newValue) {
secondWheel.setAdapter(wheelListener.onChange(wheel,
oldValue, newValue));
}
});
// 选择第二项
secondWheel.setVisibility(View.VISIBLE);
thirdWheel.setVisibility(View.GONE);
}
firstWheel.setCurrentItem(3);
// 事件监听
rightBtn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
String text = "";
if (whellNumber == 1) {
text = firstWheel.getTextItem(firstWheel.getCurrentItem());
} else if (whellNumber == 2) {
text = firstWheel.getTextItem(firstWheel.getCurrentItem())
+ "-"
+ secondWheel.getTextItem(secondWheel
.getCurrentItem());
}
wheelListener.confirm(text);
if (isShowing()) {
dismiss();
}
}
});
leftBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
wheelListener.cancel();
if (isShowing()) {
dismiss();
}
}
});
// view.startAnimation(AnimationUtils.loadAnimation(mContext,
// R.anim.push_bottom_in));
}
public void showAt(View view) {
showAtLocation(view, Gravity.BOTTOM, 0, 0);
}
/**
*
* com.dongcemedia.myview.wheelview.WheelListener
*
* @author 沈跃双 Create at 2014-1-9 下午3:24:55
*/
public interface WheelListener {
/**
* 取消按钮
*/
public abstract void cancel();
/**
* 确定按钮
*
* @param str
*/
public abstract void confirm(String str);
/**
* 两个滚轮时,第二个滚轮的适配器对象
*
* @param wheel
* @param oldValue
* @param newValue
*/
public abstract WheelAdapter onChange(WheelView wheel, int oldValue,
int newValue);
}
}