1. Jannnnn, 24.04.2019 #1
    Jannnnn

    Jannnnn Threadstarter Neues Mitglied

    Hallo,

    ich bin sehr unerfahren und neu in Java/Android Studio.
    Versuche mir Android Studio gerade mit "Android-Apps entwickeln für Einsteiger von Uwe Post" beizubringen.

    Komme momentan nicht weiter:
    Bekomme folgende Fehlermeldung bei der Variable: runde:
    Variable 'runde' might not have been initialized

    package de.androidnewcomer.mueckenfang;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.TextView;

    public class GameActivity extends AppCompatActivity {

    @override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.game);

    }

    private void spielStarten(){
    boolean spiellaeuft = true;
    int runde = 0;
    int punkte = 0;
    starteRunde();
    }
    private void starteRunde(){
    int runde = runde+1; //Hier kommt die Fehlermeldung
    int muecken = runde*10;
    int gefangeneMuecken = 0;
    int zeit = 60;
    bildschirmAktualisieren();
    }
    private void bildschirmAktualisieren(){
    TextView tvPunkte = (TextView)findViewById(R.id.points);
    tvPunkte.setText(Integer.toString(punkte)); //Hier sagt er cannot resolve symbol
    TextView tvRunde = (TextView)findViewById(R.id.round);
    tvRunde.setText(Integer.toString(runde)); //und hier.
    }
    }


    in private void spielStarten() wird "runde" doch initialisiert? Zumindest dachte ich so.

    Schon einmal vielen Dank!
     
    Zuletzt bearbeitet: 24.04.2019
  2. swa00, 25.04.2019 #2
    swa00

    swa00 Moderator Team-Mitglied

    Hallo und willkommen im Forum.

    Nun , du hast zweimal die Variable "Runde" in zwei verschiedenen Funktionen deklariert.

    Schau nochmal in dein Tutorial, das kann so nicht da drinnen stehen.
     
    Zuletzt bearbeitet: 25.04.2019
    Jannnnn bedankt sich.
  3. jogimuc, 25.04.2019 #3
    jogimuc

    jogimuc Erfahrenes Mitglied

    Hallo von mir auch ein Willkommen im Forum.

    In beiden Methoden erstellst du eine neu lokale Variable „runde“ vom Typ int.

    Das ist aber in beiden Methoden nicht die gleiche Variable. Da du sie durch das „int runde „ eine neue lokale Variable erstellst.Die nur gleich heist. Die ist dann nur in der Methode verfügbar. In der anderen nicht.


    Mit int runde = runde+1 erstellst du eine neue Variable die auch runde heißt und die neue die noch keinen zahlen wert hat willst du schon nach dem istgleich benutzen das geht nicht.

    In dem Beispiel ist „runde“ bestimmt eine globale Klassen Variable im Klassen Rumpf. Und in den Methoden sollte sie ohne das int benutzt werden. Das int bedeutet es eine neue Variable erstellt wird.
     
    Zuletzt bearbeitet: 25.04.2019
    Jannnnn bedankt sich.
  4. Jannnnn, 25.04.2019 #4
    Jannnnn

    Jannnnn Threadstarter Neues Mitglied

    Stimmt, er deklariert die Variablen nicht in den Methoden, schreibt aber auch nichts über globale Variablen etc. Vielleicht wurde das ja ein paar Themen davor angesprochen und ich hab das nur schon wieder vergessen. :)

    Hab das jetzt mal so abgeändert, Fehlermeldungen kommen jetzt erstmal keine mehr. Sind die Variablen jetzt Global?

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.TextView;

    public class GameActivity extends AppCompatActivity {
    boolean spiellaeuft = false;
    int runde = 0;
    int punkte = 0;
    int muecken = 0;
    int gefangeneMuecken = 0;
    int zeit = 0;

    @override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.game);

    }

    private void spielStarten(){
    spiellaeuft = true;
    runde = 0;
    punkte = 0;
    starteRunde();

    }
    private void starteRunde(){
    runde = runde+1;
    muecken = runde*10;
    gefangeneMuecken = 0;
    zeit = 60;
    bildschirmAktualisieren();
    }
    private void bildschirmAktualisieren(){
    TextView tvPunkte = (TextView)findViewById(R.id.points);
    tvPunkte.setText(Integer.toString(punkte));
    TextView tvRunde = (TextView)findViewById(R.id.round);
    tvRunde.setText(Integer.toString(runde));
    }
    }
     

    Anhänge:

    Zuletzt bearbeitet: 25.04.2019
  5. swa00, 25.04.2019 #5
    swa00

    swa00 Moderator Team-Mitglied

    Hallo Jannnn,

    Globale Variablen a la C/C++ gibt es nicht mehr unter Android/Java.

    Aber sie sind jetzt "übergeordnet" für deine Klasse und so müsste es auch laufen .
     
    Jannnnn bedankt sich.
  6. jogimuc, 25.04.2019 #6
    jogimuc

    jogimuc Erfahrenes Mitglied

    Ja das sind Klassen Variablen die im Klassen Rumpf erstellt werden. somit in der ganzen Klasse vorhanden sind.


    Stimmt echte globale Variablen gibt es in Java nicht., aber die Klassen Variablen kannst du innerhalb der Klasse auch als global ansehen . Man sagt halt manchmal globale Variable anstatt Klassen Variable.

    Rheinwerk Computing :: Java ist auch eine Insel - Eigene Klassen schreiben
     
    Zuletzt bearbeitet: 25.04.2019
    Jannnnn bedankt sich.
  7. Jannnnn, 26.04.2019 #7
    Jannnnn

    Jannnnn Threadstarter Neues Mitglied

    Mhh ich verzweifel schon wieder, das Buch ist teilweise echt merkwürdig geschrieben für einen "androidnewcomer".
    Kann mir einer vielleicht eine gute Anfängerlektüre für AndroidStudio empfehlen? Java kann ich so die basics. (Schleifen, Arrays, Strings, etc.)
     
  8. swa00, 27.04.2019 #8
    swa00

    swa00 Moderator Team-Mitglied

    Hallo Jan,

    die oben von jogi angegebene Lektüre ist schon recht gut.

    Auch haben wir hier ganz oben in der Liste einen eigenen Leitfaden
    [LEITFADEN] Der Einstieg in die Android Programmierung mit Android Studio


    Bevor du mit AndroidStudio beginnst und Android Programme umsetzt , solltest du Dir damit die Grundlagen der OOP
    (Objekt orientierte Programmierung) aneignen. Das muss erst 100% sitzen.
    (Arrays,Schleifen und Strings reichen leider nicht)

    Erst dann macht es auch Sinn , sich mit Android auseinander zu setzen.
    Denn Android hat jede Menge Eigenschaften, die erst dann auch verstanden werden .
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
GPS Lokalisierung Android App Entwicklung 19.11.2018
Methode fürs Verlinken von Variablen mit IDs? Android App Entwicklung 27.08.2018
Du betrachtest das Thema "Variable 'runde' might not have been initialized" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.