TableRow dynamisch erstellen

  • 1 Antworten
  • Neuester Beitrag
Diskutiere TableRow dynamisch erstellen im Android App Entwicklung im Bereich Betriebssysteme & Apps.
Webster

Webster

Erfahrenes 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:
 
Webster

Webster

Erfahrenes 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
            	)	
        );
 
Ähnliche Themen - TableRow dynamisch erstellen Antworten Datum
2