Установить положение счетчика при выполнении клика

У меня есть счетчик, имеющий значение от 1 до 50.

<Spinner
   android:id="@+id/spinnerSel"
   android:layout_width="0dp"
   android:layout_height="wrap_content"
   android:layout_alignParentRight="true"
   android:layout_centerInParent="true"
   android:layout_weight="0.4"
   android:ellipsize="end"
   android:gravity="right"
   android:spinnerMode="dropdown" />

По умолчанию нет ни одного выбранного значения. Итак, я установил его выбор на 0.

spin.setSelection(0); 

Теперь, когда пользователь performClick затем раскрывающееся меню выбора, и я хочу, чтобы оно начиналось с 20.
Значения по щелчку по умолчанию в раскрывающемся положении начинаются с 20. Затем пользователь может прокрутить вверх или вниз и изменить значение.

Я ищу много, но не получил никакого представления об этом.

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

2 ответа

Попробуйте код ниже!

spin.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction() == MotionEvent.ACTION_UP){
                    spin.setSelection(20);
                }
                return false;
            }
        });

Удачного кодирования:)

Хорошо использовать ответ Шреника Шаха. Но для элемента по умолчанию используйте это.

    spin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

                }

                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                      String myString = "Select one"; //the value you want the position for

                      ArrayAdapter myAdap = (ArrayAdapter) spin.getAdapter(); //cast to an ArrayAdapter

                      int spinnerPosition = myAdap.getPosition(myString);

                      //set the default according to value
                      spin.setSelection(spinnerPosition);
                }
            });

плюс ответ Шреника Шаха.

spin.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction() == MotionEvent.ACTION_UP){
                    spin.setSelection(20);
                }
                return false;
            }
        });

Примечание: мы не можем использовать ноль в качестве выбора по умолчанию. Мы должны добавить некоторые значения для этого, как "Выбрать один".

Другие вопросы по тегам