Now you can with Android-Wheel – the sexy WheelPicker for Android:
Android-Wheel: http://code.google.com/p/android-wheel/
It comes with a handy ScrollListener for listen to touch events on the wheel component. Yah …..C-A-S-I-N-O!
Android-Wheel: http://code.google.com/p/android-wheel/
It comes with a handy ScrollListener for listen to touch events on the wheel component. Yah …..C-A-S-I-N-O!
Some Notes:
- Sometimes you need to adjust the wheel width..I know I had to do this to prevent text from overflowing ..and the wheels rolling off…I think WheelView.java is where it at!
- res/drawables – contains the styles/gradients etc.
The Code:
import kankan.wheel.widget.ArrayWheelAdapter; import kankan.wheel.widget.OnWheelChangedListener; import kankan.wheel.widget.OnWheelScrollListener; import kankan.wheel.widget.WheelView; import android.app.Activity; import android.os.Bundle; import android.widget.EditText; import android.widget.TextView; public class Main extends Activity { // TODO: Externalize string-array String wheelMenu1[] = new String[]{"Right Arm", "Left Arm", "R-Abdomen", "L-Abdomen", "Right Thigh", "Left Thigh"}; String wheelMenu2[] = new String[]{"Upper", "Middle", "Lower"}; String wheelMenu3[] = new String[]{"R", "L"}; // Wheel scrolled flag private boolean wheelScrolled = false; private TextView text; private EditText text1; private EditText text2; private EditText text3; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.empty_layout); initWheel1(R.id.p1); initWheel2(R.id.p2); initWheel3(R.id.p3); text1 = (EditText) this.findViewById(R.id.r1); text2 = (EditText) this.findViewById(R.id.r2); text3 = (EditText) this.findViewById(R.id.r3); text = (TextView) this.findViewById(R.id.result); } // Wheel scrolled listener OnWheelScrollListener scrolledListener = new OnWheelScrollListener() { public void onScrollStarts(WheelView wheel) { wheelScrolled = true; } public void onScrollEnds(WheelView wheel) { wheelScrolled = false; updateStatus(); } }; // Wheel changed listener private final OnWheelChangedListener changedListener = new OnWheelChangedListener() { public void onChanged(WheelView wheel, int oldValue, int newValue) { if (!wheelScrolled) { updateStatus(); } } }; /** * Updates entered PIN status */ private void updateStatus() { text1.setText(wheelMenu1[getWheel(R.id.p1).getCurrentItem()]); text2.setText(wheelMenu2[getWheel(R.id.p2).getCurrentItem()]); text3.setText(wheelMenu3[getWheel(R.id.p3).getCurrentItem()]); text.setText(wheelMenu1[getWheel(R.id.p1).getCurrentItem()] + " - " + wheelMenu2[getWheel(R.id.p2).getCurrentItem()] + " - " + wheelMenu3[getWheel(R.id.p3).getCurrentItem()]); } /** * Initializes wheel * * @param id * the wheel widget Id */ private void initWheel1(int id) { WheelView wheel = (WheelView) findViewById(id); wheel.setAdapter(new ArrayWheelAdapter(wheelMenu1)); wheel.setVisibleItems(2); wheel.setCurrentItem(0); wheel.addChangingListener(changedListener); wheel.addScrollingListener(scrolledListener); } private void initWheel2(int id) { WheelView wheel = (WheelView) findViewById(id); wheel.setAdapter(new ArrayWheelAdapter(wheelMenu2)); wheel.setVisibleItems(2); wheel.setCurrentItem(0); wheel.addChangingListener(changedListener); wheel.addScrollingListener(scrolledListener); } private void initWheel3(int id) { WheelView wheel = (WheelView) findViewById(id); wheel.setAdapter(new ArrayWheelAdapter(wheelMenu3)); wheel.setVisibleItems(2); wheel.setCurrentItem(0); wheel.addChangingListener(changedListener); wheel.addScrollingListener(scrolledListener); } /** * Returns wheel by Id * * @param id * the wheel Id * @return the wheel with passed Id */ private WheelView getWheel(int id) { return (WheelView) findViewById(id); } /** * Tests wheel value * * @param id * the wheel Id * @param value * the value to test * @return true if wheel value is equal to passed value */ private int getWheelValue(int id) { return getWheel(id).getCurrentItem(); } }
I'm having trouble importing the .zip into Eclipse. Can you explain how to do it?
ReplyDeleteI went to my project build path and tried to import the .zip file as an external JAR file... That didn't work. I unzipped the file and added the .apk to my build path and that didn't work either. Any help?