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

Backgroundcolor von TableRow

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von p99p5, 30.10.2010.

  1. p99p5, 30.10.2010 #1
    p99p5

    p99p5 Threadstarter Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    27.10.2010
    Hallo,
    ich habe ein merkwürdiges Problem.
    Und zwar weise ich meiner Tablerow eine Hintergrundfarbe zu. Nur wird diese falsch dargestellt. Das gleiche gilt für die TextViews innerhalb der Tablerow. Allerdings nur für die TextViews die mittels unterem Code hinzugefügt wurden. Die per Designer werden richtig dargestellt.

    Mein Code sieht, gekürzt, folgendermaßen aus:

    PHP:
            for (int i objTabelle.Count(); i++)
            {
                
    TableRow tr=new TableRow(this);

                
    TextView txtPosition = new TextView(this);
                
    TextView txtClub = new TextView(this);
                
    TextView txtPunkte = new TextView(this);
                
    TextView txtTorverhaeltnis = new TextView(this);
        
                
    txtPosition.setText(String.valueOf(i+1) + ". ");
                
    txtClub.setText(objTabelle.Item(i).getClub());
                
    txtPunkte.setText(String.valueOf(objTabelle.Item(i).getPunkte()));
                
    txtTorverhaeltnis.setText(String.valueOf(objTabelle.Item(i).getTore() + ":" objTabelle.Item(i).getGTore()));
                       
                
                if ((
    i%2) == 0
                {
                    
    tr.setBackgroundResource(R.color.RowBackGroundGerade);    
                }
                else
                {
                    
    tr.setBackgroundResource(R.color.RowBackGroundUngerade);
                }

                
    txtClub.setTextColor(R.color.Black);
                
                
    tr.addView(txtPosition); 
                
    tr.addView(txtClub); 
                
    tr.addView(txtPunkte);
                
    tr.addView(txtTorverhaeltnis);
                
                
    tableAktuell.addView(tr);

            }

    R.color.RowBackGroundGerade entspricht #E6E6E6 und wird dargestellt als #E7E7E7.

    R.color.RowBackGroundUngerade entspricht #CCCCCC und wird dargestellt als #CECFCE.

    Das gleiche Problem besteht auch mit dem TextView, wenn ich den TextViews die Farbe Schwarz zuweise (#000000), erhalte ich #737973.

    Meine main.xml findet sich hier:
    http://pastebin.com/z2K01zJs

    Danke für eure Hilfe. :)
     
  2. RED-BARON, 14.03.2011 #2
    RED-BARON

    RED-BARON Android-Hilfe.de Mitglied

    Beiträge:
    146
    Erhaltene Danke:
    19
    Registriert seit:
    06.10.2009
    Hallo ihrs :smile:

    Ziel soll sein, die Hintergrundfarbe eines Layouts ( View ) zu ändern.

    Etwas blauäugig mein erster Versuch.


    setContentView(R.layout.main);
    LayoutInflater li = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View layoutView = li.inflate(R.layout.main, null);
    layoutView.setBackgroundColor(0xFFFFFF);


    - Aufruf in onCreate der Activity
    - keine Fehler bzw. Exceptions
    - es "passiert" einfach nichts, zumindest ändert sich die Farbe nicht

    Die Hintegrundfarbe will ich nicht in den Layouts festlegen, sondern
    in meiner Activity Basisklasse.​

    Vielen Dank für ein Denkansatz, Link, o.ä. - ick such mal weiter, vll. komm ich doch noch selbst drauf, wie es funzt.​


    Edit:​


    mScreen = (LinearLayout) findViewById(R.id.Layout_Main);
    mScreen.setBackgroundColor(0xFFFF00FF);
    mScreen.invalidate();

    so funktioniert es tatsächlich, doch :)


    Bleibt die Frage: warum funktioniert Variante 1 nicht.

    Variante 1 ( funktioniert nicht )

    LayoutInflater li = (LayoutInflater)getSystemService(Context.
    LAYOUT_INFLATER_SERVICE);
    mScreen = (LinearLayout) li.inflate(R.layout.main, null);
    mScreen.setBackgroundColor(0xFFFFFFFF);
    mScreen.invalidate();


    Variante 2 ( funktioniert )
    mScreen = (LinearLayout) findViewById(R.id.Layout_Main);
    mScreen.setBackgroundColor(0xFFFFFFFF);

     
    Zuletzt bearbeitet: 14.03.2011

Diese Seite empfehlen