0

i have a app that has three spinning wheels that display a sentance when the user spins the wheels you can see the code below.

I am using the kankan wheel project btw http://code.google.com/p/android-wheel/.

My question is, is there a way i can get the 3 words that are displayed (The row in the middle see link above image) into a kind of value string and then share what the value string is - the code is below. Thanks in advance.

    public class PasswActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.passw_layout);
    initWheel(R.id.passw_1, new String[] { "You", "Me", "Us" });
    initWheel(R.id.passw_2, new String[] { "Are", "Going", ""Went });
    initWheel(R.id.passw_3, new String[] { "There", "Here", ""Away });



    Button mix = (Button) findViewById(R.id.btn_mix);
    mix.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            mixWheel(R.id.passw_1);
            mixWheel(R.id.passw_2);
            mixWheel(R.id.passw_3);

        }
    });

}

// Wheel scrolled flag
private boolean wheelScrolled = false;

// Wheel scrolled listener
OnWheelScrollListener scrolledListener = new OnWheelScrollListener() {
    public void onScrollingStarted(WheelView wheel) {
        wheelScrolled = true;
    }

    public void onScrollingFinished(WheelView wheel) {
        wheelScrolled = false;

    }
};

// Wheel changed listener
private OnWheelChangedListener changedListener = new OnWheelChangedListener() {
    public void onChanged(WheelView wheel, int oldValue, int newValue) {
        if (!wheelScrolled) {

        }
    }
};

/**
 * Initializes wheel
 * 
 * @param id
 *            the wheel widget Id
 */
private void initWheel(int id, String[] values) {
    WheelView wheel = getWheel(id);
    wheel.setViewAdapter(new ArrayWheelAdapter<String>(this, values));
    wheel.setCurrentItem((int) (Math.random() * 10));
    wheel.addChangingListener(changedListener);
    wheel.addScrollingListener(scrolledListener);
    wheel.setCyclic(true);
    wheel.setInterpolator(new AnticipateOvershootInterpolator());

}

/**
 * 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 entered PIN
 * 
 * @param v1
 * @param v2
 * @param v3
 * @param v4
 * @return true
 */
private boolean testPin(int v1, int v2, int v3, int v4) {
    return testWheelValue(R.id.passw_1, v1)
            && testWheelValue(R.id.passw_2, v2)
            && testWheelValue(R.id.passw_3, v3);

}

/**
 * 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 boolean testWheelValue(int id, int value) {
    return getWheel(id).getCurrentItem() == value;
}

/**
 * Mixes wheel
 * 
 * @param id
 *            the wheel id
 */
private void mixWheel(int id) {
    WheelView wheel = getWheel(id);
    wheel.scroll(-25 + (int) (Math.random() * 50), 2000);
}
 }
Machavity
  • 30,841
  • 27
  • 92
  • 100
Matt
  • 1,747
  • 8
  • 33
  • 58

1 Answers1

1
private String getWheelValue(int id) {
    WheelView wheel = getWheel(R.id.passw_1);
    int index = wheel.getCurrentItem();
    ((ArrayWheelAdapter<String>) wheel.getViewAdapter()).getItemText(index).toString();  
}

So you can get your strings by:

String message = getWheelValue(R.id.passw_1) + " " + getWheelValue(R.id.passw_2) + " " getWheelValue(R.id.passw_3)

Send SMS:

    private void sendSMS(String phoneNumber, String message)
    {        
        PendingIntent pi = PendingIntent.getActivity(this, 0, new Intent(this, MyActivity.class), 0);                
        SmsManager sms = SmsManager.getDefault();
        sms.sendTextMessage(phoneNumber, null, message, pi, null);        
} 
nostra13
  • 12,377
  • 3
  • 33
  • 43
  • Thanks for the anser but how can i now use that for the user of the app to be able to click a share button and choose to send that value to facebook, twitter, text message! etc....Thanks – Matt Nov 21 '11 at 15:41
  • For Facebook sharing you have to include Facebook SDK project to your project. For Twitter sharing you have to include one of Twitter libraries (I used twitter4j). Do you have it? – nostra13 Nov 21 '11 at 17:10
  • I added SMS sending example in answer. – nostra13 Nov 21 '11 at 17:13