Как показать собственный вид в Spinner Widget вместо Text View? - PullRequest
1 голос
/ 16 марта 2010

У меня есть выбор для некоторых элементов с использованием виджета счетчика. В данный момент счетчик загрузит простое Textview и покажет название элемента.
Можно определить собственный вид, чтобы показать внутри строки счетчика? Я подозреваю, что это похоже на пользовательскую строку списка.

Я просто хочу показать отдельный значок слева от текста счетчика для каждого элемента в списке.

Ответы [ 2 ]

3 голосов
/ 16 марта 2010

Да, вы можете сделать это - как вы знаете, Spinner - это тип AdapterView, что означает, что вы можете адаптировать свои собственные данные для отображения в таких View.

* 1005подход очень похож на подход с ListView.Выдержка из ApiDemos:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, INTERPOLATORS);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);

Вы можете определить свой собственный макет и передать его используемому подклассу SpinnerAdapter.

1 голос
/ 25 марта 2011

Да, это очень просто.

Главное, определить TextView как корневой элемент в файле макета.
Сделайте как ниже:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, INTERPOLATORS);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);


simple_spinner_dropdown_item.xml файл:

<?xml version="1.0" encoding="utf-8"?>
<TextView>
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="50px"
    android:textColor="#000000"
    android:textSize="20px"
    android:gravity="center_vertical" >
</TextView>
...