package com.withiter.quhao.view; import java.util.List; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.RelativeLayout; import com.withiter.quhao.R; import com.withiter.quhao.view.wheel.OnWheelChangedListener; import com.withiter.quhao.view.wheel.WheelView; import com.withiter.quhao.view.wheel.adapters.AbstractWheelTextAdapter; public class PersonCountWheel extends RelativeLayout { private List<String> personCounts; private int selectedItem; private Context mContext; private WheelView wheelView; private Button personCountSubmit; private OnPersonCountWheelListener onPersonCountWheelListener; public List<String> getItems() { return personCounts; } public void setItems(List<String> personCounts) { this.personCounts = personCounts; } public PersonCountWheel(Context context) { super(context); init(context); } public PersonCountWheel(Context context,List<String> personCounts,int selectedItem) { super(context); this.personCounts = personCounts; this.selectedItem = selectedItem; init(context); } public PersonCountWheel(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(context); } public PersonCountWheel(Context context, AttributeSet attrs) { super(context, attrs); init(context); } private void init(Context context) { mContext = context; LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater.inflate(R.layout.person_count_wheel_layout, this, true); wheelView = (WheelView) findViewById(R.id.person_count_wheel); wheelView.setVisibleItems(5); // Number of items wheelView.setWheelBackground(R.drawable.wheel_bg_holo); wheelView.setWheelForeground(R.drawable.wheel_val_holo); wheelView.setShadowColor(0xFF000000, 0x88000000, 0x00000000); wheelView.setViewAdapter(new PersonCountWheelAdapter(mContext,personCounts)); // wheelView.setCurrentItem(3); wheelView.addChangingListener(new OnWheelChangedListener() { @Override public void onChanged(WheelView wheel, int oldValue, int newValue) { selectedItem = newValue; if (null != onPersonCountWheelListener) { onPersonCountWheelListener.onPersonCountChanged(oldValue, newValue); } } }); if (selectedItem < personCounts.size()) { wheelView.setCurrentItem(selectedItem); } personCountSubmit = (Button) findViewById(R.id.person_count_submit); personCountSubmit.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { if (onPersonCountWheelListener != null) { onPersonCountWheelListener.onPersonCountSubmitClick(view, selectedItem); } } }); } /** * Adapter for countries */ private class PersonCountWheelAdapter extends AbstractWheelTextAdapter { // City names final List<String> personCounts; /** * Constructor */ protected PersonCountWheelAdapter(Context context,List<String> personCounts) { super(context, R.layout.person_count_wheel_holo_layout, NO_RESOURCE); setItemTextResource(R.id.person_count_item_name); this.personCounts = personCounts; } @Override public View getItem(int index, View cachedView, ViewGroup parent) { View view = super.getItem(index, cachedView, parent); return view; } @Override public int getItemsCount() { return personCounts.size(); } @Override protected CharSequence getItemText(int index) { return personCounts.get(index); } } public OnPersonCountWheelListener getOnPersonCountWheelListener() { return onPersonCountWheelListener; } public void setOnPersonCountWheelListener( OnPersonCountWheelListener onPersonCountWheelListener) { this.onPersonCountWheelListener = onPersonCountWheelListener; } }