ArrayAdapter requires resourceID to be a TextView

  • Antworten:4
Oliver Nass
  • Forum-Beiträge: 3

15.11.2012, 11:57:14 via Website

Hallo,

ich habe ein großes Problem und komm nicht weiter. Zuerst mal, bin absoluter Android-Neuling. Ich programmiere mit Eclipse und ADT-Plugin.
Ich will eine simple Liste einem ArrayAdapter übergeben und bekomme eine Exception, allerdings nur bei einem Handy.

Die Methode in der Activity:
1private ListView mainListView = null;
2private String[] lv_arr = {};
3......
4ArrayList<String> listTODO = LoadSelections();
5this.mainListView = (ListView) findViewById(R.id.listview1);
6lv_arr = (String[]) listTODO.toArray(new String[0]);
7
8mainListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_selectable_list_item, lv_arr));

So, wenn ich mehrere Emulatoren in Eclipse starte, funktioniert alles.
Wenn ich das Samsung Galaxy Ace mit Android 2.3.6 dranhänge, geht's auch
Wenn ich das Sony Xperia mini mit Android 2.1.x dranhänge auch.
Nur wenn ich das Galaxy S GT-i9000 anschließe (Android 2.3.3) kommt das:

111-15 11:49:40.976: D/szipinf(2423): Initializing inflate state
211-15 11:49:46.011: E/ArrayAdapter(2423): You must supply a resource ID for a TextView
311-15 11:49:46.015: D/AndroidRuntime(2423): Shutting down VM
411-15 11:49:46.015: W/dalvikvm(2423): threadid=1: thread exiting with uncaught exception (group=0x40015578)
511-15 11:49:46.027: E/AndroidRuntime(2423): FATAL EXCEPTION: main
611-15 11:49:46.027: E/AndroidRuntime(2423): java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
711-15 11:49:46.027: E/AndroidRuntime(2423): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:347)
811-15 11:49:46.027: E/AndroidRuntime(2423): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
911-15 11:49:46.027: E/AndroidRuntime(2423): at android.widget.AbsListView.obtainView(AbsListView.java:1554)
1011-15 11:49:46.027: E/AndroidRuntime(2423): at android.widget.ListView.measureHeightOfChildren(ListView.java:1264)
1111-15 11:49:46.027: E/AndroidRuntime(2423): at android.widget.ListView.onMeasure(ListView.java:1175)
1211-15 11:49:46.027: E/AndroidRuntime(2423): at android.view.View.measure(View.java:8366)
1311-15 11:49:46.027: E/AndroidRuntime(2423): at android.widget.TableRow.getColumnsWidths(TableRow.java:308)
1411-15 11:49:46.027: E/AndroidRuntime(2423): at android.widget.TableLayout.findLargestCells(TableLayout.java:500)
1511-15 11:49:46.027: E/AndroidRuntime(2423): at android.widget.TableLayout.measureVertical(TableLayout.java:465)
1611-15 11:49:46.027: E/AndroidRuntime(2423): at android.widget.TableLayout.onMeasure(TableLayout.java:431)
1711-15 11:49:46.027: E/AndroidRuntime(2423): at android.view.View.measure(View.java:8366)
1811-15 11:49:46.027: E/AndroidRuntime(2423): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
1911-15 11:49:46.027: E/AndroidRuntime(2423): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
2011-15 11:49:46.027: E/AndroidRuntime(2423): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
2111-15 11:49:46.027: E/AndroidRuntime(2423): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
2211-15 11:49:46.027: E/AndroidRuntime(2423): at android.view.View.measure(View.java:8366)
2311-15 11:49:46.027: E/AndroidRuntime(2423): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
2411-15 11:49:46.027: E/AndroidRuntime(2423): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
2511-15 11:49:46.027: E/AndroidRuntime(2423): at android.view.View.measure(View.java:8366)
2611-15 11:49:46.027: E/AndroidRuntime(2423): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
2711-15 11:49:46.027: E/AndroidRuntime(2423): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
2811-15 11:49:46.027: E/AndroidRuntime(2423): at android.view.View.measure(View.java:8366)
2911-15 11:49:46.027: E/AndroidRuntime(2423): at android.view.ViewRoot.performTraversals(ViewRoot.java:844)
3011-15 11:49:46.027: E/AndroidRuntime(2423): at android.view.ViewRoot.handleMessage(ViewRoot.java:1865)
3111-15 11:49:46.027: E/AndroidRuntime(2423): at android.os.Handler.dispatchMessage(Handler.java:99)
3211-15 11:49:46.027: E/AndroidRuntime(2423): at android.os.Looper.loop(Looper.java:123)
3311-15 11:49:46.027: E/AndroidRuntime(2423): at android.app.ActivityThread.main(ActivityThread.java:3687)
3411-15 11:49:46.027: E/AndroidRuntime(2423): at java.lang.reflect.Method.invokeNative(Native Method)
3511-15 11:49:46.027: E/AndroidRuntime(2423): at java.lang.reflect.Method.invoke(Method.java:507)
3611-15 11:49:46.027: E/AndroidRuntime(2423): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
3711-15 11:49:46.027: E/AndroidRuntime(2423): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
3811-15 11:49:46.027: E/AndroidRuntime(2423): at dalvik.system.NativeStart.main(Native Method)
3911-15 11:49:46.027: E/AndroidRuntime(2423): Caused by: java.lang.ClassCastException: android.widget.ImageView
4011-15 11:49:46.027: E/AndroidRuntime(2423): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:340)

Antworten
Oliver Nass
  • Forum-Beiträge: 3

15.11.2012, 13:31:46 via Website

Ahh, ok. Warum läuft es dann auf dem Sony mit A2.1.x ?

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

15.11.2012, 15:32:01 via Website

Das kann ich Dir nicht sagen - ist auch irrelevant. Vielleicht war es ja mal in einem älteren Release enthalten.

Du kannst das im Übrigen selbst prüfen wenn Du in Deinem Android SDK Ordner unterhalb platforms durch die Plattformen klickst. Dort findest Du alle Layouts in data/res/layout. Erst ab SDK11 ist Dein Layout enthalten.

Kopier Dir das einfach unter einem neuen Namen in Deinen eigenen layout Ordner. Das würde ich ohnehin empfehlen. So wie bei den drawables ist man dann vor Änderungen abgesichert.

— geändert am 15.11.2012, 15:32:39

Antworten
Oliver Nass
  • Forum-Beiträge: 3

15.11.2012, 16:14:21 via Website

Danke dir.

Antworten