Android: Создайте spinner программно из массива
Я все новичок в Android, и я пытаюсь создать spinner программно и кормить его данными из массива, но Eclipse дает мне предупреждение, с которым я не могу справиться.
Вот что я получил:
Этот массив ArrayList содержит элементы, которые должны быть в spinner (получает заполненный из файла позже):
ArrayList<String> spinnerArray = new ArrayList<String>();
Это код, который я нашел на сайте, который должен создать spinner:
Spinner spinner = new Spinner(this);
ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,
android.R.layout.simple_spinner_dropdown_item,
spinnerArray);
spinner.setAdapter(spinnerArrayAdapter);
Теперь вторая строка (ArrayAdapter...) дает мне предупреждение в Eclipse, говоря "ArrayAdapter is a raw type... References to generic type ArrayAdapter<T> should be parameterized"
, я понятия не имею, как это исправить (или что это значит в первую очередь:)).
Это просто предупреждение, и приложение, похоже, работает хорошо, но я все равно хотел бы понять, что неправильно и исправить. Любые намеки приветствуются.
Привет,
Select0r
Ответы
Ответ 1
ArrayAdapter<String>
должен работать.
то есть:.
Spinner spinner = new Spinner(this);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>
(this, android.R.layout.simple_spinner_item,
spinnerArray); //selected item will look like a spinner set from XML
spinnerArrayAdapter.setDropDownViewResource(android.R.layout
.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);
Ответ 2
Точно так же с Массив
// Array of choices
String colors[] = {"Red","Blue","White","Yellow","Black", "Green","Purple","Orange","Grey"};
// Selection of the spinner
Spinner spinner = (Spinner) findViewById(R.id.myspinner);
// Application of the Array to the Spinner
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, colors);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // The drop down view
spinner.setAdapter(spinnerArrayAdapter);
Ответ 3
Это сработало для меня с строковым массивом с именем shoes
, загруженным из ресурсов проектов:
Spinner spinnerCountShoes = (Spinner)findViewById(R.id.spinner_countshoes);
ArrayAdapter<String> spinnerCountShoesArrayAdapter =
new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item,
getResources().getStringArray(R.array.shoes));
spinnerCountShoes.setAdapter(spinnerCountShoesArrayAdapter);
Это мой файл ресурсов (res/values/arrays.xml
) со строковым массивом:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="shoes">
<item>0</item>
<item>5</item>
<item>10</item>
<item>100</item>
<item>1000</item>
<item>10000</item>
</string-array>
</resources>
С помощью этого метода проще сделать его многоязычным (при необходимости).
Ответ 4
Это действительно сработало для меня
Spinner spinner = new Spinner(this);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, spinnerArray);
spinnerArrayAdapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );
spinner = (Spinner) findViewById( R.id.spinner );
spinner.setAdapter(spinnerArrayAdapter);
Ответ 5
эта работа для меня: -
String[] array = {"A", "B", "C"};
String abc = "";
Spinner spinner = new Spinner(getContext());
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_item, array); //selected item will look like a spinner set from XML
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);
Я использую фрагмент.
Ответ 6
На котлинском языке вы можете сделать это следующим образом:
val values = arrayOf(
"cat",
"dog",
"chicken"
)
ArrayAdapter(
this,
android.R.layout.simple_spinner_item,
values
).also {
it.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
spinner.adapter = it
}