2010-03-16 1 views
1

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

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

ответ

3

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

Подход очень похож на тот, который с 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

Да, это очень легко.

Главное, чтобы определить 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> 
+3

Что делать, если вы хотите иметь несколько TextViews в вашей блесны? Как и Google в приложении Gmail? –

Смежные вопросы