this gibi bir tekerlekli seçici yapmaya çalışıyorum Bu projeyi indirmeyi denedim ancak .zip dosyasında bulunan tek dosyalar, wheel-demo.apk ve notes.txt. Notes.txt'in bu dosyayı android stüdyosuyla nasıl kullanacağı konusunda herhangi bir talimatı yoktur. Aynı efekti oluşturmak için ListViews kullanarak önerdi bir yazı buldum. Kendi yaptığımı yapmaktan başka bir gün internette arama yapmak için harcadım ve kaynak kodunu here buldum ama dosyalarımı projeme aktardığımda IDE düzinelerce hata gösterdi. Deneme ve hata yoluyla 3 hatadan fazlasını düzeltmeyi başardım. Ben
MainActivity.java aşağıdaki ilgili kodu koyduk eminim:Tekerlek toplayıcı nasıl yapılır
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;
}
}
.Java dosyalarının üçü de MainActivitesindeki içe aktarma listesine eklenmiş, sorunu çözebileceğini düşünüyordu. Şimdiye kadar tavsiye ettiğiniz için teşekkür ederiz.
bu şekilde çalıştın? –
Bu şekilde ne demek istiyorsun? Mesajdaki kod, bahsettiğim kaydırma sorununa girmeden önce vardığım kadarıyla. Android studio, indirdiğim .zip'ten çıkardığım dosyalardan hiçbir şey alamadı. –
Tüm projeyi "Github'a Aktar" düğmesini kullanarak https://code.google.com/p/android-wheel/ adresinden GitHub'a aktarabilirsiniz. Bu, Android Studio'ya içe aktarmayı kolaylaştırır. – Kuffs