web-dev-qa-db-ja.com

Android:配列からプログラムでスピナーを作成

私はすべてAndroidに不慣れで、プログラムでスピナーを作成し、それに配列からのデータを供給しようとしていますが、Eclipseは私には処理できないという警告を出しています。

これが私が手に入れたものです:

このArrayListは、スピナー内にあるべき要素を保持します(後でファイルから埋められます)。

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

2行目(ArrayAdapter ...)では、"ArrayAdapter is a raw type... References to generic type ArrayAdapter<T> should be parameterized"というEclipseの警告が表示されます。これを修正する方法(または最初の意味でこれが何を意味するのかわかりません)。

これは単なる警告であり、Appは問題なく動作しているように見えますが、それでも何が問題なのかを理解して修正したいと思います。どんなヒントでも大歓迎です。

ご挨拶、Select0r

172
Select0r

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

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

これは、プロジェクトリソースからロードされた "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>

この方法では、必要に応じて多言語化する方が簡単です。

51
Bruno Bieri

これは実際に私のために働いた

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

私のためにこの仕事: -

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
Arish Khan

Kotlin言語では、次の方法で実行できます。

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