1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Absturz bei Spinner.setAdapter()

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Scanner, 05.05.2010.

  1. Scanner, 05.05.2010 #1
    Scanner

    Scanner Threadstarter Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    22.04.2010
    Phone:
    HTC Desire
    Hallo zusammen,

    seit einigen Tagen befasse ich mich mit Abdroid. Bis jetzt habe ich mir einige Arbeiten angeschaut und etwas Theorie durchgelesen.

    Beim ersten praktischen Versuch bin ich auf ein Problem gestoßen und komme einfach nicht weiter.

    Der Code:
    Code:
    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            Spinner s1 = (Spinner) findViewById(R.id.rowView);
            ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                    this, R.array.zeilen, android.R.layout.simple_spinner_item);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);          
            s1.setAdapter(adapter);
        }
    
    Die Zeile
    Code:
    [I]s1.setAdapter(adapter); [/I]
    
    verursacht laut Logcat eine NullPointerException.
    Habe schon einige andere Versionen des Codes ausprobiert, aber immer das selbe - bei der Zeile s1.setAdapter(adapter); gibt es einen Absturz der app.

    Hat jemand eine Idee warum das passiert?

    Gruß
     
  2. klausa2, 05.05.2010 #2
    klausa2

    klausa2 Fortgeschrittenes Mitglied

    Beiträge:
    298
    Erhaltene Danke:
    20
    Registriert seit:
    08.07.2009
    Sieht nicht falsch aus. Wie sehen denn die zugehörigen Resourcefiles aus?
     
  3. Scanner, 05.05.2010 #3
    Scanner

    Scanner Threadstarter Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    22.04.2010
    Phone:
    HTC Desire
    Ich habe unter values eine Datei namens array.xml angelegt und der Inhalt sieht wie folgt aus:

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <array name="zeilen">
            <item>value_1</item>
            <item>value_2</item>
            <item>value_3</item>
            <item>value_4</item>
            <item>value_5</item>
        </array>
    </resources>
    
    Habe es sogar mit einem normalen Array brobiert, aber immer das selbe:confused:.

    Gruß
     
  4. sebastian, 05.05.2010 #4
    sebastian

    sebastian Fortgeschrittenes Mitglied

    Beiträge:
    271
    Erhaltene Danke:
    74
    Registriert seit:
    11.05.2009
    Könntest du auch bitte die main.xml mal zeigen?! Die einfachste Lösung wäre, dass
    Code:
    Spinner s1 = (Spinner) findViewById(R.id.rowView);
    null zurückgibt.
     
  5. Scanner, 05.05.2010 #5
    Scanner

    Scanner Threadstarter Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    22.04.2010
    Phone:
    HTC Desire
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello"
        />
        <RadioGroup android:id="@+id/position"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
    
            <RadioButton android:id="@+id/start"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Stauanfang"/>
    
            <RadioButton android:id="@+id/ende"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Stauende"/>
        </RadioGroup>
        <Spinner
        android="@+id/rowView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    </LinearLayout>
    
    Im Prinzip ganz einfach.
    Gibt es eventuell eine Konvention für die Namensvergabe?

    Gruß
     
  6. Scanner, 06.05.2010 #6
    Scanner

    Scanner Threadstarter Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    22.04.2010
    Phone:
    HTC Desire
    Habe es gerade mit einer ListView probiert und wieder mit dem selbem Problem. Bei der Zeile mit
    Code:
    lv.setAdapter(listAdapter)
    sturzt die APP ab.

    Werde mir das SDK mal neu Laden und alles wiederholen. Sonst habe ich keine Idee mehr.

    Gruß
    und Danke
     
  7. sebastian, 06.05.2010 #7
    sebastian

    sebastian Fortgeschrittenes Mitglied

    Beiträge:
    271
    Erhaltene Danke:
    74
    Registriert seit:
    11.05.2009
    Es liegt nicht an deinem SDK. Ich kann es bei mir reproduzieren! :eek:
    Die NullPointerException geschieht, da
    Code:
    findViewById(R.id.rowView);
    
    null zurück gibt und beim Versuch darauf zuzugreifen passiert es halt.

    Das wirklich seltsame aber ist, dass er den Spinner wirklich nie zu finden scheint!? Hab es auf Andorid 1.5 + 2.1 probiert, gleiches Ergebnis. Alles bis auf den Spinner aus main.xml raus oder findViewById in onResume, nichts verändert sich. Bei anderen Codes funktioniert es so, nur scheinbar bei deinem Code nicht :mad::eek:
     
  8. Raidri, 06.05.2010 #8
    Raidri

    Raidri Android-Hilfe.de Mitglied

    Beiträge:
    71
    Erhaltene Danke:
    1
    Registriert seit:
    27.03.2010
    Mmh, Da ich da jetzt auch keinen Fehler sehe... liegt es vllt an dem @string/hello... gibt es die strings.xml ? Wirkt ja schon sehr strange gerade ^^
     
  9. SeraphimSerapis, 06.05.2010 #9
    SeraphimSerapis

    SeraphimSerapis Android-Guru

    Beiträge:
    3,072
    Erhaltene Danke:
    1,138
    Registriert seit:
    27.02.2009
    Das IDE würde sonst ja bereits motzen, wenn der String fehlen würde
     
  10. Scanner, 06.05.2010 #10
    Scanner

    Scanner Threadstarter Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    22.04.2010
    Phone:
    HTC Desire
    Vielen Dank für die Hilfe,
    werde mich erstmal mit anderen Elementen befassen und kehre wieder hierhin wenn ich mehr Ahnung von der Materie habe.


    Danke nochmal


    Gruß
     
  11. Scanner, 06.05.2010 #11
    Scanner

    Scanner Threadstarter Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    22.04.2010
    Phone:
    HTC Desire
    Habe mir das SDK mal trotzdem neu gezogen und siehe da – es läuft.
    Der Spinner ist != null und alles funktioniert.
    Also das ganze bleibt wohl ein Ministerium, aber ich bin froh das es klappt.:)

    Danke Euch allen
     
  12. dreigradcelsius, 06.06.2010 #12
    dreigradcelsius

    dreigradcelsius Neuer Benutzer

    Beiträge:
    1
    Erhaltene Danke:
    0
    Registriert seit:
    06.06.2010
    Ich hatte grad ein ähnliches Problem. Falls nochmal jemand über diesen Post stolpert:
    Code:
    <Spinner
        android="@+id/rowView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    
    Das erste Attribut sollte android:id heißen.
     

Diese Seite empfehlen