TableRow dynamisch erstellen

Webster

Webster

Erfahrenes Mitglied
25
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:
 
  • Danke
Reaktionen: TIMAH14
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
            	)	
        );
 
  • Danke
Reaktionen: TIMAH14

Ähnliche Themen

5
Antworten
0
Aufrufe
1.145
586920
5
R
Antworten
6
Aufrufe
1.011
swa00
swa00
W
Antworten
2
Aufrufe
743
rene3006
R
Zurück
Oben Unten