私はすべて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
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と同じように
// 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);
フラグメントを使用しています。
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
}