2011-12-25 2 views
1

Мне нужно изменить Адаптер моего Spinner именно в тот момент, когда я нажимаю на него.Измените адаптер, когда нажимаете On Spinner

Я пытаюсь отобразить 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 
    } 
}); 

, но это не работает. Когда приложение запущено, я получил второй адаптер, а не первый.

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

ответ

0

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

В любом случае, в общем, я не думаю, что вам нужно 2 адаптера, вы можете просто поставить «Сделать свой выбор» сверху и onItemSelected, если пользователь выбрал это, вы можете остановить его и попросить выбрать реальное значение.

+0

Да, это то, что я думал о , но есть другой способ сделать это? –

0

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

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

}); 
Смежные вопросы