package com.team.zhuoke.ui.dialog.genderselector;
import android.app.Activity;
import android.app.Dialog;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import com.team.zhuoke.R;
import java.util.ArrayList;
/**
* Created by YolandaLi on 2016/5/10 0010.
*/
public class GenderPickerDialog extends Dialog {
private final static int DEFAULT_ITEMS = 5;
private Activity mContext;
private ArrayList<String> mGender = new ArrayList<>();
AbstractWheelTextAdapter genderAdapter;
WheelView genderWheel;
public static interface onGenderPickedListener {
public void onPicked(String selectGender);
}
public GenderPickerDialog(Activity context,
String defaultGender,
final onGenderPickedListener listener) {
super(context);
mContext = context;
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
getWindow().setGravity(Gravity.BOTTOM);
getWindow().setBackgroundDrawable(
new ColorDrawable(Color.parseColor("#00000000")));
getWindow().setWindowAnimations(R.style.AnimBottom);
View rootView = getLayoutInflater().inflate(
R.layout.dialog_gender_picker, null);
int screenWidth = mContext.getWindowManager().getDefaultDisplay()
.getWidth();
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(screenWidth,
ViewGroup.LayoutParams.MATCH_PARENT);
super.setContentView(rootView, params);
mGender.add("男");
mGender.add("女");
initViews();
setDefaultArea(defaultGender);
View done = findViewById(R.id.done);
done.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (listener != null) {
String gender = mGender.size() > 0 ? mGender
.get(genderWheel.getCurrentItem()) : null;
listener.onPicked(gender);
}
dismiss();
}
});
View cancel = findViewById(R.id.cancel);
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
}
private void setDefaultArea(String defaultGender) {
int provinceItem = 0;
if (defaultGender == null) {
defaultGender = mGender.get(0);
provinceItem = 0;
} else {
for (int i = 0; i < mGender.size(); i++) {
if (mGender.get(i)
.equals(defaultGender)) {
provinceItem = i;
break;
}
}
}
genderWheel.setCurrentItem(provinceItem, false);
}
private void initViews() {
genderWheel = (WheelView) findViewById(R.id.genderWheel);
genderAdapter = new AbstractWheelTextAdapter(mContext,
R.layout.wheel_text) {
@Override
public int getItemsCount() {
return mGender.size();
}
@Override
protected CharSequence getItemText(int index) {
return mGender.get(index);
}
};
genderWheel.setViewAdapter(genderAdapter);
genderWheel.setCyclic(false);
genderWheel.setVisibleItems(DEFAULT_ITEMS);
OnWheelClickedListener clickListener = new OnWheelClickedListener() {
@Override
public void onItemClicked(WheelView wheel, int itemIndex) {
if (itemIndex != wheel.getCurrentItem()) {
wheel.setCurrentItem(itemIndex, true, 500);
}
}
};
genderWheel.addClickingListener(clickListener);
genderWheel.addChangingListener(new OnWheelChangedListener() {
@Override
public void onChanged(WheelView wheel, int oldValue, int newValue) {
}
});
}
}