it-swarm.com.de

Android: Erstellen Sie Spinner programmgesteuert aus Array

Ich bin ganz neu in Android und ich versuche, ein Drehfeld programmgesteuert zu erstellen und es mit Daten aus einem Array zu füttern, aber Eclipse gibt mir eine Warnung, die ich nicht verarbeiten kann.

Folgendes habe ich bekommen:

Diese ArrayList enthält die Elemente, die sich im Drehfeld befinden sollen (wird später aus einer Datei gefüllt):

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

Dies ist Code, den ich auf einer Site gefunden habe, die den Spinner erstellen soll:

Spinner spinner = new Spinner(this);
ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,
                Android.R.layout.simple_spinner_dropdown_item,
                spinnerArray);
spinner.setAdapter(spinnerArrayAdapter);

Jetzt gibt mir die zweite Zeile (ArrayAdapter ...) in Eclipse eine Warnung mit der Aufschrift "ArrayAdapter is a raw type... References to generic type ArrayAdapter<T> should be parameterized", Ich habe keine Ahnung, wie ich das beheben soll (oder was das überhaupt bedeutet :)).

Es ist nur eine Warnung und die App scheint in Ordnung zu sein, aber ich möchte immer noch verstehen, was falsch ist und es beheben. Jeder Hinweis wird geschätzt.

Grüße, Select0r

177
Select0r

ArrayAdapter<String> sollte arbeiten.

d. h .:

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

Ebenso mit Array

// 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);
105
Yann Masoch

Dies funktionierte für mich mit einem String-Array named shoes, das aus den Projektressourcen geladen wurde:

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

Dies ist meine Ressourcendatei (res/values/arrays.xml) mit dem String-Array:

<?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>

Mit dieser Methode ist es einfacher, sie mehrsprachig zu gestalten (falls erforderlich).

54
Bruno Bieri

Das hat bei mir tatsächlich funktioniert

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

diese Arbeit für mich: -

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

Ich benutze ein Fragment.

6
Arish Khan

In Kotlin können Sie dies folgendermaßen tun:

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
}
1
Micer