Android Array для выбора колес

Привет всем, у меня есть колесоборщик, но в данный момент он тянет цифры от 0 до 9 для всех для колес. Я хочу иметь возможность устанавливать значения вместо 0-9. Я хочу, чтобы это были слова, которые вытягиваются из массива или строки, поэтому я могу ввести их myslef, так как я не уверен, где цифры в настоящее время вытягиваются. Код ниже:

public class PasswActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.passw_layout);
 initWheel(R.id.passw_1);
 initWheel(R.id.passw_2);
 initWheel(R.id.passw_3);
 initWheel(R.id.passw_4);
 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);
 mixWheel(R.id.passw_4);
 }
 });
}
// 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) {
 WheelView wheel = getWheel(id);
 wheel.setViewAdapter(new NumericWheelAdapter(this, 0, 9));
 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) && testWheelValue(R.id.passw_4, v4);
}
/**
 * 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);
}
}

Любая помощь определяется. Благодаря

1 ответ

Не могли бы вы сослаться ниже на демонстрационный проект с колесами, это очень поможет в решении вашей проблемы со строковыми данными на колесах. Также код ниже из того же проекта.

http://code.google.com/p/android-wheel/

public class CitiesActivity extends Activity {
 // Scrolling flag
 private boolean scrolling = false;
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.cities_layout);
 final WheelView country = (WheelView) findViewById(R.id.country);
 country.setVisibleItems(3);
 country.setViewAdapter(new CountryAdapter(this));
 final String cities[][] = new String[][] {
 new String[] {"New York", "Washington", "Chicago", "Atlanta", "Orlando"},
 new String[] {"Ottawa", "Vancouver", "Toronto", "Windsor", "Montreal"},
 new String[] {"Kiev", "Dnipro", "Lviv", "Kharkiv"},
 new String[] {"Paris", "Bordeaux"},
 };
 final WheelView city = (WheelView) findViewById(R.id.city);
 city.setVisibleItems(5);
 country.addChangingListener(new OnWheelChangedListener() {
 public void onChanged(WheelView wheel, int oldValue, int newValue) {
 if (!scrolling) {
 updateCities(city, cities, newValue);
 }
 }
 });
 country.addScrollingListener( new OnWheelScrollListener() {
 public void onScrollingStarted(WheelView wheel) {
 scrolling = true;
 }
 public void onScrollingFinished(WheelView wheel) {
 scrolling = false;
 updateCities(city, cities, country.getCurrentItem());
 }
 });
 country.setCurrentItem(1);
 }
 /**
 * Updates the city wheel
 */
 private void updateCities(WheelView city, String cities[][], int index) {
 ArrayWheelAdapter<string> adapter =
 new ArrayWheelAdapter<string>(this, cities[index]);
 adapter.setTextSize(18);
 city.setViewAdapter(adapter);
 city.setCurrentItem(cities[index].length / 2); 
 }
 /**
 * Adapter for countries
 */
 private class CountryAdapter extends AbstractWheelTextAdapter {
 // Countries names
 private String countries[] =
 new String[] {"USA", "Canada", "Ukraine", "France"};
 // Countries flags
 private int flags[] =
 new int[] {R.drawable.usa, R.drawable.canada, R.drawable.ukraine, R.drawable.france};
 /**
 * Constructor
 */
 protected CountryAdapter(Context context) {
 super(context, R.layout.country_layout, NO_RESOURCE);
 setItemTextResource(R.id.country_name);
 }
 @Override
 public View getItem(int index, View cachedView, ViewGroup parent) {
 View view = super.getItem(index, cachedView, parent);
 ImageView img = (ImageView) view.findViewById(R.id.flag);
 img.setImageResource(flags[index]);
 return view;
 }
 @Override
 public int getItemsCount() {
 return countries.length;
 }
 @Override
 protected CharSequence getItemText(int index) {
 return countries[index];
 }
 }
}
</string></string>

licensed under cc by-sa 3.0 with attribution.