Variable Objektreferenz in forschleife

  • Antworten:5
Bernd Berndsen
  • Forum-Beiträge: 19

07.10.2014, 05:36:52 via Website

Moin!

Ich würde in einer for-Schleife gerne verschiedene textViews ansprechen und am besten dazu die Laufvariable i nutzen.

Ich iteriere eine ArrayList mit Objekten durch. Jedes Objekt hat 8 Attribute, die ich jeweils in eine TextView schreiben will.
Dh. bei einem Objekt 8 TextViews, bei zwei Objekten 16 TextViews, bei drei 24 usw...

Die TextViews sind nach dem Schema 001 (0, 0 = erstes Objekt , 1=erstes Attribut) bis momenten 048 (0, 4 = viertes Objekt, 8= achtes Attribut) benannt

Ich dachte an sowas wie:
for(int i = 0; i< mannschaftenArray.size();i++)
{
textView0 i 3.setText(mannschaftenArray.get(i).getName());
textView0 i 4.setText(mannschaftenArray.get(i).getId());
... usw
}

Nur dass es halt funktionieren sollte(laughing)
Ist das irgendwie möglich?

Ich wäre euch sehr dankbar!

MfG

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

07.10.2014, 06:13:22 via App

Hallo,
Also ach der Theorie Funktioniert das schon d
solage Datensätze im Array gespeichert sind

Das Probelm sind eher die TextViews. In jedem durchlauf der Schleife werden sie überschrieben. D.d eigentlich müssten die Letzten Elemente angezeigt werden.
Gibt es denn irgendwelche Fehler im LogCat?

LG Pascal

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Bernd Berndsen
  • Forum-Beiträge: 19

07.10.2014, 10:29:41 via Website

Also Bei mir meckert er direkt, wenn ich das Versuche

The method setText(String) is undefined for the Type String

            Object[] tvArray= {tv023,tv024,tv025,tv026,tv027,tv028};

        for(int i = 0; i< mannschaftenArray.size();i++)
        {

            tvArray[i].setText(mannschaftenArray.get(i).getName());
        }

Habs halt auch schon als String[] probiert.

Danke schon mal für deine Antwort!

Antworten
Bernd Berndsen
  • Forum-Beiträge: 19

07.10.2014, 11:17:45 via Website

Ach so ich glaub du hast mich falsch verstanden: Ich will ja in jedem Durchlauf neue TextViews ansprechen.
Das ist ja der Sinn der ganzen Sache^^

Antworten
Fabian Simon
  • Forum-Beiträge: 359

07.10.2014, 13:09:04 via Website

Bernd Berndsen

          Object[] tvArray= {tv023,tv024,tv025,tv026,tv027,tv028};

      for(int i = 0; i< mannschaftenArray.size();i++)
      {

          tvArray[i].setText(mannschaftenArray.get(i).getName());
      }

Das kann nicht gehen !
Object kennt nicht die Methode setText .
Entweder du machst es so :

TextView[] tvArray= {tv023,tv024,tv025,tv026,tv027,tv028};

      for(int i = 0; i< mannschaftenArray.size();i++)
      {

          tvArray[i].setText(mannschaftenArray.get(i).getName());
      }

oder so

Object[] tvArray= {tv023,tv024,tv025,tv026,tv027,tv028};

  for(int i = 0; i< mannschaftenArray.size();i++)
  {

     if (tvArray[i] instanceOf TextView){
        TextView tmp (TextView)tvArray[i];
        tmp.setText(mannschaftenArray.get(i).getName());
     }


  }

— geändert am 07.10.2014, 13:09:30

Antworten
Bernd Berndsen
  • Forum-Beiträge: 19

07.10.2014, 13:11:19 via Website

Fabian Simon

Bernd Berndsen

            Object[] tvArray= {tv023,tv024,tv025,tv026,tv027,tv028};

        for(int i = 0; i< mannschaftenArray.size();i++)
        {

            tvArray[i].setText(mannschaftenArray.get(i).getName());
        }

Das kann nicht gehen !
Object kennt nicht die Methode setText .
Entweder du machst es so :

TextView[] tvArray= {tv023,tv024,tv025,tv026,tv027,tv028};

      for(int i = 0; i< mannschaftenArray.size();i++)
      {

          tvArray[i].setText(mannschaftenArray.get(i).getName());
      }

oder so

Object[] tvArray= {tv023,tv024,tv025,tv026,tv027,tv028};

  for(int i = 0; i< mannschaftenArray.size();i++)
  {

     if (tvArray[i] instanceOf TextView){
        TextView tmp (TextView)tvArray[i];
        tmp.setText(mannschaftenArray.get(i).getName());
     }


  }

Bin nicht auf die Idee gekommen es als TextView zu speichern.
Vielen Dank!!! Probiere es gleich aus :D

Antworten