Получение ссылки на Spinner в базовом адаптере - PullRequest
1 голос
/ 27 декабря 2011

У меня есть BaseAdaptor, который я расширил для обработки некоторых объектов (Spinner, переключаемый вид и т. Д.). Я пытаюсь получить выбранное значение из счетчика. Моя проблема в том, что getSelectedItem () всегда возвращает первое значение (индекс 0). Не уверен, что мне не хватает. Вот мой код.

GridView grid=(GridView)findViewById(R.id.grdMain);
AcmObjectBaseAdaptor ad = (AcmObjectBaseAdaptor) grid.getAdapter();
String year = "";
if (ad.getItem(0) instanceof Spinner){
    Spinner spinner = (Spinner) ad.getItem(0);
    year = spinner.getSelectedItem().toString();
    System.out.println("Selected: " + year);
}

1 Ответ

1 голос
/ 27 декабря 2011

Что, если вы добавите и onItemSelectedListener к счетчику?

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
         System.out.println("onItemSelected: " + position);
    }

    @Override
    public void onNothingSelected(AdapterView<?> parentView) {}
});
...