Как сделать подборщик колес

Я пытаюсь сделать подборщик колес таким образом, я попытался загрузить этот проект, но единственными файлами, включенными в загрузку .zip, являются wheel-demo.apk и notes.txt. В Notes.txt нет инструкций о том, как использовать этот файл в студии Android. Я нашел сообщение, которое предложило использовать ListViews для создания того же эффекта. Вместо того, чтобы сделать свой собственный, я потратил еще один день на поиск в Интернете, и я нашел исходный код здесь, но когда я импортировал файлы в свой проект, IDE обнаружил десятки ошибок. Через пробную версию и ошибку мне удалось исправить все, кроме 3 ошибки. Довольно уверен, что я поставил соответствующий код ниже
MainActivity.java:

OnWheelScrollListener scrolledListener = new OnWheelScrollListener() { public void onScrollingStarted(WheelView wheel) { wheelScrolled = true;// "Cannot resolve symbol wheelScrolled } public void onScrollingFinished(WheelView wheel) { wheelScrolled = false;// "Cannot resolve symbol wheelScrolled updateStatus(); } }; // Wheel changed listener private final OnWheelChangedListener changedListener = new OnWheelChangedListener() { public void onChanged(WheelView wheel, int oldValue, int newValue) { if (!wheelScrolled)// "Cannot resolve symbol wheelScrolled { updateStatus(); } } }; private void initWheel1(int id) { WheelView wheel = (WheelView) findViewById(id); wheel.setAdapter(new ArrayWheelAdapter<String>(wheelMenu1)); //cannot resolve method 'setAdapter(com.projectname.ArrayWheelAdapter<Java.lang.String>) wheel.setVisibleItems(2); wheel.setCurrentItem(0); wheel.addChangingListener(changedListener); wheel.addScrollingListener(scrolledListener); } 

OnWheelScrollListener.java:

 public interface OnWheelScrollListener { /** * Callback method to be invoked when scrolling started. * @param wheel the wheel view whose state has changed. */ void onScrollingStarted(WheelView wheel); /** * Callback method to be invoked when scrolling ended. * @param wheel the wheel view whose state has changed. */ void onScrollingFinished(WheelView wheel);} 

OnWheelChangedListener.java:

  public interface OnWheelChangedListener { /** * Callback method to be invoked when current item changed * @param wheel the wheel view whose state has changed * @param oldValue the old value of current item * @param newValue the new value of current item */ void onChanged(WheelView wheel, int oldValue, int newValue); } 

ArrayWheelAdapter.java

  public class ArrayWheelAdapter<T> extends AbstractWheelTextAdapter { // items private T items[]; /** * Constructor * @param context the current context * @param items the items */ public ArrayWheelAdapter(Context context, T items[]) { super(context); //setEmptyItemResource(TEXT_VIEW_ITEM_RESOURCE); this.items = items; } @Override public CharSequence getItemText(int index) { if (index >= 0 && index < items.length) { T item = items[index]; if (item instanceof CharSequence) { return (CharSequence) item; } return item.toString(); } return null; } @Override public int getItemsCount() { return items.length; } } 

Все 3 файла .java были добавлены в список импорта в MainActivity, и это может решить проблему, но этого не произошло. Спасибо за совет до сих пор.

Попробуй это

 public class MainActivity extends Activity { // TODO: Externalize string-array String wheelMenu1[] = new String[]{"name 1", "name 2", "name 3", "name 4", "name 5", "name 6","name 7","name 8","name 9"}; String wheelMenu2[] = new String[]{"age 1", "age 2", "age 3"}; String wheelMenu3[] = new String[]{"10", "20","30","40","50","60"}; // 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.main); 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<String>(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<String>(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<String>(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(); } } 

main.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:background="@drawable/layout_bg"> <LinearLayout android:layout_marginTop="24dp" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <com.example.wheel.WheelView android:id="@+id/p1" android:layout_height="wrap_content" android:layout_width="wrap_content" /> <com.example.wheel.WheelView android:id="@+id/p2" android:layout_height="wrap_content" android:layout_width="wrap_content" /> <com.example.wheel.WheelView android:id="@+id/p3" android:layout_height="wrap_content" android:layout_width="wrap_content" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="24dp"> <EditText android:id="@+id/r1" android:layout_width="100dip" android:layout_height="wrap_content" android:layout_marginTop="24dp" android:layout_gravity="center_horizontal" android:textSize="18sp" android:textColor="#000"> </EditText> <EditText android:id="@+id/r2" android:layout_width="80dip" android:layout_height="wrap_content" android:layout_marginTop="24dp" android:layout_gravity="center_horizontal" android:textSize="18sp" android:textColor="#000"> </EditText> <EditText android:id="@+id/r3" android:layout_width="80dip" android:layout_height="wrap_content" android:layout_marginTop="24dp" android:layout_gravity="center_horizontal" android:textSize="18sp" android:textColor="#000"> </EditText> </LinearLayout> <TextView android:id="@+id/result" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="24dp" android:layout_gravity="center_horizontal" android:textSize="18sp" android:textColor="#FFF" android:text="Your choice"> </TextView> </LinearLayout> 

Также попробуйте эту демонстрацию

Введите описание изображения здесь

Вы можете просто использовать стандартный пакет NumberPicker, включенный в Android, начиная с API 11. Вы можете отображать любые строки, которые вы хотите, с помощью NumberPicker # setDisplayedValues.

XML:

 <NumberPicker android:id="@+id/number_picker" android:layout_width="match_parent" android:layout_height="180dp" /> 

Ява:

  String[] data = new String[]{"Berlin", "Moscow", "Tokyo", "Paris"}; picker.setMinValue(0); picker.setMaxValue(data.length-1); picker.setDisplayedValues(data); 

Скриншот:

NumberPicker, отображающий города

Intereting Posts
Android Wi-Fi Direct: объект WifiP2pInfo передан onConnectionInfoAvailable callback имеет свойство null groupOwnerAddress Как обновить-обновить фрагмент в ViewPager по основной активности программно Возвратите значение из AsyncTask в Android Увеличение / уменьшение пространства между звездами в Android по умолчанию RatingBar Как получить доступ к изображениям по умолчанию для Android (например, изображение для большого пальца стрелки при нажатии) из java-кода? Отправлять трансляцию с помощью комбинации localbroadcastmanager sendorderedbroadcast Эффект андроидного увеличительного стекла Воспроизведение видео с YouTube с веб-просмотра Robolectric + Eclipse Не можете найти ресурсы? Android-всплывающее окно выше виртуальной клавиатуры Как определить ориентацию устройства с помощью JavaScript? Графика должна сохраняться, когда другая кнопка на операции нажата Как использовать кнопки диалога диалогового окна стиля головоломки Android Кордова LocalStorage сохраняет данные даже после удаления приложения Отправка html-адреса электронной почты в android с помощью <table> и т. Д. – действительно ли нет встроенного способа Intent?