package com.androidcookbook.wheelpickerdemo; import kankan.wheel.widget.OnWheelChangedListener; import kankan.wheel.widget.OnWheelScrollListener; import kankan.wheel.widget.WheelView; import kankan.wheel.widget.adapters.ArrayWheelAdapter; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.EditText; import android.widget.TextView; public class WheelDemoActivity extends Activity { private final static String TAG = "WheelDemo"; private final static String[] wheelMenu1 = { "Right Arm", "Left Arm", "R-Abdomen", "L-Abdomen", "Right Thigh", "Left Thigh"}; private final static String[] wheelMenu2 = { "Upper", "Middle", "Lower" }; private final static String[] wheelMenu3 = {"R", "L"}; // Wheel scrolled flag private boolean wheelScrolled = false; private TextView resultText; private EditText text1; private EditText text2; private EditText text3; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_wheel_picker); initWheel(R.id.p1, wheelMenu1); initWheel(R.id.p2, wheelMenu2); initWheel(R.id.p3, wheelMenu3); text1 = (EditText) this.findViewById(R.id.r1); text2 = (EditText) this.findViewById(R.id.r2); text3 = (EditText) this.findViewById(R.id.r3); resultText = (TextView) this.findViewById(R.id.resultText); } /** * Wheel scrolled listener */ OnWheelScrollListener scrolledListener = new OnWheelScrollListener() { @Override public void onScrollingStarted(WheelView wheel) { wheelScrolled = true; } @Override public void onScrollingFinished(WheelView wheel) { wheelScrolled = false; updateStatus(); } }; /** * Wheel changed listener */ private final OnWheelChangedListener changedListener = new OnWheelChangedListener() { @Override public void onChanged(WheelView wheel, int oldValue, int newValue) { Log.d(TAG, "onChanged, wheelScrolled = " + wheelScrolled); if (!wheelScrolled) { updateStatus(); } } }; /** * Updates entered status */ private void updateStatus() { text1.setText(wheelMenu1[((WheelView) findViewById(R.id.p1)).getCurrentItem()]); text2.setText(wheelMenu2[((WheelView) findViewById(R.id.p2)).getCurrentItem()]); text3.setText(wheelMenu3[((WheelView) findViewById(R.id.p3)).getCurrentItem()]); resultText.setText( wheelMenu1[((WheelView) findViewById(R.id.p1)).getCurrentItem()] + " - " + wheelMenu2[((WheelView) findViewById(R.id.p2)).getCurrentItem()] + " - " + wheelMenu3[((WheelView) findViewById(R.id.p3)).getCurrentItem()]); } /** * Initializes one wheel * @param id * the wheel widget Id */ private void initWheel(int id, String[] wheelMenu1) { WheelView wheel = (WheelView) findViewById(id); wheel.setViewAdapter(new ArrayWheelAdapter<String>(this, wheelMenu1)); wheel.setVisibleItems(2); wheel.setCurrentItem(0); wheel.addChangingListener(changedListener); wheel.addScrollingListener(scrolledListener); } }