プログラムの開始時に、スピナーはによって作成されます
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinnerAdapter = ArrayAdapter.createFromResource(
this, R.array.IDs, android.R.layout.simple_spinner_item);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerAdapter);
spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
後の時点で、すべてのエントリをArrayListのItemsに置き換える必要があります。スピナーを使用するとき、私にとって興味深いのはストリングだけです。表示時とアルゴリズムの後半。
どのようにそれをしますか?
for (String object:out){
System.out.println("added to spinner: "+object);
spinnerAdapter.add(object);
}
spinnerAdapter.notifyDataSetChanged();
それは私の考えでしたが、例外をスローするだけなので、単純すぎるようです。
編集:
尋ねられたように、ここで例外がスローされます。
12-11 15:11:38.538: I/System.out(280): added to spinner: TheSwitch 12-11 15:11:38.548: W/dalvikvm(280): threadid=7: thread exiting with uncaught exception (group=0x4001d800) 12-11 15:11:38.568: E/AndroidRuntime(280): FATAL EXCEPTION: Thread-8 12-11 15:11:38.568: E/AndroidRuntime(280): java.lang.UnsupportedOperationException 12-11 15:11:38.568: E/AndroidRuntime(280): at java.util.AbstractList.add(AbstractList.java:411) 12-11 15:11:38.568: E/AndroidRuntime(280): at java.util.AbstractList.add(AbstractList.java:432) 12-11 15:11:38.568: E/AndroidRuntime(280): at android.widget.ArrayAdapter.add(ArrayAdapter.java:178) 12-11 15:11:38.568: E/AndroidRuntime(280): at de.enocean.EnOceanAppActivity.updateSpinner(EnOceanAppActivity.java:109) 12-11 15:11:38.568: E/AndroidRuntime(280): at de.enocean.EnOceanAppActivity$1.useNotifyMessage(EnOceanAppActivity.java:222) 12-11 15:11:38.568: E/AndroidRuntime(280): at de.enocean.EnOceanAppActivity$1.run(EnOceanAppActivity.java:179) 12-11 15:11:38.568: E/AndroidRuntime(280): at java.lang.Thread.run(Thread.java:1096)