Не удалось найти класс 'android.widget.ThemedSpinnerAdapter'

У меня есть в фрагменте вызов метода, который открывает AlertDialog, когда пользователь нажимает кнопку, в этом диалоге я хотел бы показать Spinner со странами (Испания, Италия, французский...)

Мой код для счетчика следующий:

RestCountries restCountries = new RestCountries();
    List<RestCountries.Datum>  countries = restCountries.data;
    String mCities ="";
    ArrayList<String> citiesArrayList = new ArrayList<>();

    for(RestCountries.Datum data : countries){
        mCities = data.name;
        citiesArrayList.add(mCities);
    }

    ArrayAdapter spinnerAdapter = new ArrayAdapter(getActivity(),android.R.layout.simple_spinner_dropdown_item,  citiesArrayList );
    mCountrySpinner.setAdapter(spinnerAdapter);

Скручиватель отображается после открытия диалога.

В logcat я получаю

Could not find class 'android.widget.ThemedSpinnerAdapter', referenced
from method
android.support.v7.widget.AppCompatSpinner$DropDownAdapter.<init>

Любая идея о том, что я делаю неправильно

Ответ 2

Я столкнулся и выиграл эту проблему!

Если вы используете AndriodAnnotations здесь, проблема в том, что я заполнил списки в методе onCreate(). Я использовал для просмотра через findViewById(R.id...) и работал с ними.

Теперь, как выяснилось во время отладки, все представления еще не созданы в onCreate()! Проблема была решена, когда я нашел аннотацию @AfterViews в документах, и метод под этой аннотацией теперь заполняет все мои действия и выполняет инициализацию полей.

Итак, в любом случае проверьте свой код на NullPointerException, вызванный вызовом пустого объекта view.

Ответ 3

Существует несколько различных причин этой проблемы. В моем случае (пытался зарегистрироваться в Parse), я получил эту ошибку, попробовав приложение на планшете. Когда я перешел на Android-телефон, я получил сообщение об ошибке:

Вы должны зарегистрировать этот подкласс ParseObject перед его созданием

Итак, в моем классе App.java я сделал это:

public class App extends Application {


public void onCreate() {
    super.onCreate();
    Parse.enableLocalDatastore(this);
    Parse.initialize(this, "PARSE APPLICATION ID", "PARSE CLIENT KEY");
}
}

а затем в моем манифесте я сделал это:

<application
    android:name=".App"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    ...

Вот оно. Не имеет ничего общего с Spinner

Ответ 4

Это может не помочь всем, но у меня возникла проблема с добавлением счетчика в PopupWindow.

Я обновил my compileSdkTarget с 23 до 25, а версию моей поддерживающей библиотеки до 25.1.0, но это не помогло.

Оказалось, что смена spinnerMode на "диалог" обошла проблему:

<Spinner
 android:id="@+id/group_spinner"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:spinnerMode="dialog"
/>

Он не полностью исправляет это, конечно, если вы действительно хотите выталкиватель выпадающего списка.