1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  1. Webster, 13.08.2009 #1
    Webster

    Webster Threadstarter Fortgeschrittenes Mitglied

    Hi beisammen,

    ich verzweifle gerade am dynamischen erstellen einer TableRow.
    Wenn ich in meiner Funktion nur ein TextView erstelle funktioniert alles, aber mit dem TableRow mache ich irgendwas falsch. Meine Funktion sieht folgendermaßen aus:

    Code:
        public void makeNewRow(String key, String val) {
        	
        	TableLayout tl = (TableLayout) findViewById(R.id.resulttable);
        	
        	rowcounter++;
        	
            TableRow tr = new TableRow(this);
            tr.setId(100+rowcounter);
            
            tr.setLayoutParams(
            	new LayoutParams(
            		LayoutParams.FILL_PARENT,
            		LayoutParams.WRAP_CONTENT
            	)	
            );
                    
            TextView tvkey = new TextView(this);
            tvkey.setId(200+rowcounter);
            tvkey.setText(key);
            tvkey.setTextColor(Color.YELLOW);
            tvkey.setBackgroundColor(Color.GREEN);
            tvkey.setLayoutParams(
            		new LayoutParams(
                		LayoutParams.FILL_PARENT,
                		LayoutParams.WRAP_CONTENT
                	)	
            );
            
            tr.addView(tvkey);
            
            TextView tvval = new TextView(this);
            tvkey.setId(rowcounter);
            tvval.setText(val);
            tvval.setTextColor(Color.YELLOW);
            tvval.setLayoutParams(
            		new LayoutParams(
                		LayoutParams.FILL_PARENT,
                		LayoutParams.WRAP_CONTENT
                	)	
            );       
            tr.addView(tvval);
            
         	
            tl.addView(tr, 
            	new TableLayout.LayoutParams(
            		LayoutParams.FILL_PARENT,
            		LayoutParams.WRAP_CONTENT
            	)	
            );       
    
        	
        }
    
    und hier die zugehörige XML-Datei:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:stretchColumns="0,1"
                    android:id="@+id/resulttable" >
    </TableLayout>
    
    Den Aufruf mache ich dann so:
    Code:
    setContentView(R.layout.result);
    makeNewRow("Ulla", "Pulla");
    
    Sieht jemand den Fehler? Ich seit Stunden nicht :confused:
     
    TIMAH14 bedankt sich.
  2. Webster, 13.08.2009 #2
    Webster

    Webster Threadstarter Fortgeschrittenes Mitglied

    Ich habe den Fehler gefunden. Es war ein TableRow zu wenig.
    Es müsste so heißen:

    Code:
            tvval.setLayoutParams(
            		new [COLOR="Red"]TableRow[/COLOR].LayoutParams(
                		LayoutParams.FILL_PARENT,
                		LayoutParams.WRAP_CONTENT
                	)	
            );
    
     
    TIMAH14 bedankt sich.

Diese Seite empfehlen

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. android tablelrow layout dynamisch