Поменяйте адаптер при нажатии на Spinner - PullRequest
1 голос
/ 25 декабря 2011

Мне нужно сменить адаптер моего счетчика именно в тот момент, когда я нажимаю на него.

Я пытаюсь отобразить Spinner со значением «Сделай свой выбор», а затем, когда пользователь щелкает, на Spinner загружается другой адаптер, и он может сделать свой выбор (без отображения «Сделай свой выбор»).

Вот мой код

ArayAdapter adapterclasse = new ArrayAdapter(this,android.R.layout.simple_spinner_item, affp.classes);
ArrayAdapter adaptermodule = new ArrayAdapter(this,android.R.layout.simple_spinner_item, affp.matiers);
spinner.setAdapter(adapterclasse);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
        spinner.setAdapter(adaptermodule);
    }

    @Override
    public void onNothingSelected(AdapterView<?> parentView) {
        // your code here
    }
});

но это не работает. Когда приложение запускается, я загружаю второй адаптер вместо первого.

Пожалуйста, помогите и спасибо.

Ответы [ 2 ]

0 голосов
/ 28 декабря 2011

На самом деле, можно загрузить новый адаптер, когда пользователь коснется вида (счетчик)

spinner.setOnTouchListener(new OnTouchListener()
{      
    @Override
    public boolean onTouch(View v, MotionEvent event) 
    {
        spinner.setAdapter(adapterclasse2);
        return false;
    }

});
0 голосов
/ 25 декабря 2011

Второй адаптер установлен, потому что при загрузке счетчика вызывается метод onItemSelected, это нормально (первый элемент выбран).

Во всяком случае, в общем, я не думаю, что вам нужны 2 адаптера, вы можете просто поставить "Make your choise" сверху и onItemSelected, если пользователь выбрал это, вы можете остановить его и попросить выбрать реальное значение.

...