Кастинг спиннеров в андроиде

В настоящее время я тестирую различные примеры Google для Android по адресу http://developer.android.com/guide/tutorials/views/hello-spinner.html

НО я не могу заставить эту часть работать, хотя код точно такой же, как и на веб-сайте.

Spinner s = (Spinner) findViewById(R.id.spinner);

Eclipse продолжает говорить: «Невозможно выполнить преобразование из View в Spinner».

Кто-нибудь из вас, ребята, знает, как это решить?

Спасибо.


person lemon    schedule 17.09.2009    source источник
comment
Все когда-то нубы :)   -  person Jeremy Logan    schedule 22.09.2009


Ответы (4)


Вы уверены, что импортировали android.widget.Spinner, а не что-то другое с таким же названием? Может быть, попробуйте следующее, просто чтобы быть уверенным:

android.widget.Spinner s = (android.widget.Spinner) findViewById(R.id.spinner);

Если это не вызывает у вас проблем, велика вероятность, что у вас проблема с пространством имен.

person Jeremy Logan    schedule 17.09.2009

Это кажется странным, вы уверены, что импортировали android.widget.Spinner? Spinner наследуется от View, поэтому он должен работать.

person Rexxars    schedule 17.09.2009

Как предполагают другие, это может быть проблема с пространством имен. Я столкнулся с этим однажды, когда испортил обобщение - чтобы использовать ваш случай, я определил класс как принимающий Foo<Spinner> вместо Foo<A>, и поэтому Spinner было определено как локальное имя в моем пространстве имен. Только когда я переименовал общий код в Foo<A>, мои ссылки Spinner разрешились.

(в моем случае это было String, а не Spinner, но шаблон должен сохраняться)

person CommonsWare    schedule 17.09.2009

имя вашей переменной spinner не должно совпадать с именем класса.

person user18683    schedule 27.11.2014