Android: создать счетчик программно из массива


Я все новичок в Android, и я пытаюсь создать счетчик программно и кормить его данными из массива, но Eclipse дает мне предупреждение, что я не могу справиться.

вот что я получил:

этот ArrayList содержит элементы, которые должны быть в spinner (получает заполнено из файла позже):

ArrayList<String> spinnerArray = new ArrayList<String>();

Это код, который я нашел на сайте, который должен создать счетчик:

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

5 159

5 ответов:

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); 

С массив

// 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);

это сработало для меня со строковым массивом с именем"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>

С помощью этого метода легче сделать его многоязычным (в случае необходимости).

это действительно сработало для меня

    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);

эта работа для меня:-

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);

Я использую фрагмент.