Неверный текст подсказки для Android
Первый год из массива данных отображается вместо текста из приглашения в моем счетчике. Я попытался добавить приглашение в XML, но я также пробовал из кода. Кроме того, при добавлении атрибута spinnerSelector он дает ошибку "ресурс, не найденный".
XML
<Spinner
android:id="@+id/spinnerYear"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:drawSelectorOnTop="true"
android:padding="5dip"
android:prompt="@string/spinner_header"
android:background="@drawable/selector_yearspinnerback"
android:layout_below="@+id/linearLayout_gender_btns"
android:layout_centerHorizontal="true"></Spinner>
-- android:spinnerSelector="@drawable/category_arrow"
Код
ArrayList<String> yearList = new ArrayList<String>();
int now = new Date().getYear() + 1900;
for (int i = now; i > now - 110; i--) {
yearList.add(i + "");
}
Spinner spinner = (Spinner) findViewById(R.id.spinnerYear);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, yearList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
Ответы
Ответ 1
Для меня, как android: prompt XML attibute, так и Spinner.setPrompt, и селектор списков отображает правильное название.
Попробуйте найти ошибку в вашем коде или вызовите Spinner.getPrompt в какой-то момент и распечатайте это для входа в журнал, чтобы найти наш адрес, откуда вы получаете недопустимый заголовок.
Ответ 2
Возможно, вы видите, как прядильщик выпадал в качестве списка без подсказки. Существует два режима, в которых счетчик показывает элементы, выпадающий и диалог.
Добавьте этот атрибут в свой счетчик как атрибут XML atrtribute:
android:spinnerMode="dialog"
И теперь вы получите элементы в списке выбора всплывающего окна, а не в раскрывающемся списке.
Ответ 3
Вы должны установить adapter.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item);
после
spinner.setAdapter(adapter);
Таким образом, фиксированный код будет:
ArrayList<String> yearList = new ArrayList<String>();
int now = new Date().getYear() + 1900;
for (int i = now; i > now - 110; i--) {
yearList.add(i + "");
}
Spinner spinner = (Spinner) findViewById(R.id.spinnerYear);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, yearList);
spinner.setAdapter(adapter);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
(Я надеюсь, что это сработает для вас, как будто это работает для меня: D!)