2015-11-02 4 views
-1

Я видел это вращающееся колесо, которое кажется хорошим способом получить доступ от пользователей.Создайте вращающееся колесо для ввода от пользователя

Так что я хотел бы найти способ его создать. Хотя я много искал Google, я не могу найти хорошую информацию о способе ее создания. Просто старый код и старые ссылки, которые не работают, я смог найти.

Внизу внизу изображение того, что я хочу, но, возможно, с большим количеством альтернатив (больше колес).

Итак, вопрос в том, как его создать?

enter image description here

+1

Пробовали ли вы GitHub? –

+1

Вы можете начать с чего-то и показать нам, что вы сделали до сих пор. В любом случае, есть много графических интерфейсов для Android, с открытым исходным кодом. – m0skit0

+0

Да, я велел испытать github без везения. И начинайте кодирование без каких-либо грайков или чего-нибудь еще, в чем смысл? Где-то есть такой компонент, как я предполагаю, я просто не могу его найти. :) – Cyrix

ответ

2

Попробуйте таким образом

import com.vijay.wheel.ArrayWheelAdapter; 
import com.vijay.wheel.OnWheelChangedListener; 
import com.vijay.wheel.OnWheelScrollListener; 
import com.vijay.wheel.WheelView; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.EditText; 
import android.widget.TextView; 

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.vijay.wheel.WheelView 
      android:id="@+id/p1" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" /> 
     <com.vijay.wheel.WheelView 
      android:id="@+id/p2" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" /> 
     <com.vijay.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> 
+0

I видел это и на гитуде. Iv загрузил классы. Я должен проверить его позже. Спасибо, что напомнили! Надеюсь, он все еще работает. :) – Cyrix

+0

просто попробуйте и скажите, есть ли у вас какие-либо проблемы .. и принять ответ, если это поможет –

Смежные вопросы