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

TableRow dynamisch erstellen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Webster, 13.08.2009.

  1. Webster, 13.08.2009 #1
    Webster

    Webster Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    388
    Erhaltene Danke:
    21
    Registriert seit:
    10.08.2009
    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

    Beiträge:
    388
    Erhaltene Danke:
    21
    Registriert seit:
    10.08.2009
    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