Jump to content
Unity Insider Forum

Text von Listenfeld ausgeben


peachplayer

Recommended Posts

Hallo Leute

Weiss jemand wie man den Text eines Listenfeldes zeilenweise  ausgeben kann, ohne dass die Werte kumuliert werden?

Habe es wie folgt probiert:

 void ListeAnzeigen()
    {
        string NummerAusgabe = "";
        string ParzellennameAusgabe = "";
        string NAusgabe = "";
        string PAusgabe = "";
        string KAusgabe = "";
        string MgAusgabe = "";

        for (int i = 0; i < liste.Count; i++)
        {
            NummerAusgabe += liste[i].GetNummer() + "\n";
            ParzellennameAusgabe += liste[i].GetParzellenname() + "\n";
            NAusgabe += liste[i].GetNBilanz() + "\n";
            PAusgabe += liste[i].GetPBilanz() + "\n";
            KAusgabe += liste[i].GetKBilanz() + "\n";
            MgAusgabe += liste[i].GetMgBilanz() + "\n";
            
            NAnzeige.text = NAusgabe;
            PAnzeige.text = PAusgabe;
            KAnzeige.text = KAusgabe;
            MgAnzeige.text = MgAusgabe;
        

        }
   
    }

Leider werden die Werte der Variabeln NAusgabe, PAusgabe, KAusgabe, MgAusgabe dabei aufsummiert!

Gruss, peachplayer

Ausgabe.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Just now, malzbie said:

Oder einfach :


NAusgabe += "" + liste[i].GetNBilanz() + "\n";

Denn wenn man mit einem String anfängt wird das Ganze zum String.

Das tut er bereits bei der Nennung der Variable string NAusgabe = ""; , aber ich lass mich gern eines besseren belehren, wenn das so auch funktioniert :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

@malzbie

einInt + einString

ergibt auch schon einen String. Mit einem String anfangen muss es also nicht, das gegebene "\n" reicht aus.

Die ganze Problemstellung halte ich für sehr merkwürdig, denn an dem Code oben ist einfach kein Fehler zu sehen. Da findet nirgendwo eine Addition statt, sondern überall Konkatenation. Wenn also irgendwo Dinge aufsummiert werden, dann innerhalb der Methoden GetNBilanz und dergleichen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, das stimmt. Aber dann ist .ToString genauso unnötig.
Ich habe das eben mal mit nem einfachen int Array getestet und der Code funktioniert einwandfrei. Natürlich muss das Textelement auch mehrere Zeilen darstellen können.
Somit kann das Problem nur aus der Funktion her kommen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 42 Minuten schrieb malzbie:

Ja, das stimmt. Aber dann ist .ToString genauso unnötig.

Allerdings!

Ich hab da auch nur nix gesagt weil ich bisher nicht mit einem konstruktiven Alternativvorschlag aufwarten konnte. Immer nur Bemängeln ist ja nicht so die gute Idee :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 10 Minuten schrieb peachplayer:

Daher ist der Fehler wohl eher in der Funktion ListeAnzeigen() zu suchen.

Da ist kein Fehler. Die Methode ist ja jetzt auch nicht komplex genug, dass man da mal eben was übersieht.

Mach mal

Debug.Log(liste[i].GetNBilanz());

und schau, was rauskommt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier der Code für das Befüllen der Liste:

 void ListeFuellen()
    {
        for (int i = 0; i < 10; i++)
        {
            if (PlayerPrefs.HasKey("Nummer_p" + i))
            {
                int Nummer = PlayerPrefs.GetInt("Nummer_d" + i);
                string Parzellenname = PlayerPrefs.GetString("Parzellenname_b" + i);

                NBilanz = PlayerPrefs.GetFloat("NSum" + i) - PlayerPrefs.GetFloat("NbSum" + i);

                PBilanz = PlayerPrefs.GetFloat("PSum" + i) - PlayerPrefs.GetFloat("PbSum" + i);

                KBilanz = PlayerPrefs.GetFloat("KSum" + i) - PlayerPrefs.GetFloat("KbSum" + i);

                MgBilanz = PlayerPrefs.GetFloat("MgSum" + i) - PlayerPrefs.GetFloat("MgbSum" + i);



                DüngerEintrag_NPK_Bilanz eintrag = new DüngerEintrag_NPK_Bilanz(Nummer, Parzellenname,NBilanz, PBilanz, KBilanz, MgBilanz);
                liste.Add(eintrag);
            }
            else
                break;
        } 

Gruss, peachplayer

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...