2010-08-19 4 views
0

Je veux créer, disons, 5 types de cellules différents dans le tableau avec des identifiants et les charger de manière appropriée selon les données données selon le type? Créer TableRow à l'intérieur de TableLayout semble être l'une des options, mais comment créer dynamiquement les tablesRows selon le type?Charger dynamiquement des cellules de tableau personnalisées dans le tableau

Thanx à l'avance. Pouvez-vous détecter le type à l'heure d'exécution?

Répondre

0

Si oui, il devrait être simple en utilisant un commutateur ou une structure if else.

Pour gonfler une ressource XML à temps d'exécution en fonction de l'utilisation du type de ligne:

((LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE)) 
.inflate(layoutId, yourTableLayout, true); 

Régler le layoutId correspond le avant de gonfler la ressource et puis continuer. Les paramètres yourTableLayout et vrai sont juste ma conjecture, consultez la documentation au LayoutInflater et choisissez la méthode de gonflement qui répond à vos besoins.

Pour créer tablerows dynamiquement, ce tutoriel peut aider: Creating TableRow rows inside a TableLayout programatically

En gros:

1- Fetch TableLayout et créer TableRow

// Get the TableLayout 
TableLayout tl = (TableLayout) findViewById(R.id.maintable); 

TableRow tr = new TableRow(this); 
tr.setId(100+current); 
tr.setLayoutParams(new LayoutParams(
       LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 

2- Créer des éléments pour ajouter

TextView labelTV = new TextView(this); 
labelTV.setId(200+current); 
labelTV.setText(provinces[current]); 
labelTV.setTextColor(Color.BLACK); 
labelTV.setLayoutParams(new LayoutParams(
       LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
tr.addView(labelTV); 

3- Ajouter le TableRow à la TableLayout

// Add the TableRow to the TableLayout 
tl.addView(tr, new TableLayout.LayoutParams(
       LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 

semble être facile et rapide, je ne l'ai pas testé tho.

+0

Comme les tablesRows sont de type différent [5 types différents], les éléments ajoutés sont différents. Je veux l'enregistrer en XML avec un identifiant et charger celui qui convient à l'exécution. C'est possible? – neha

+0

J'ai mis à jour la réponse, j'espère que cela clarifie votre question. – Maragues

Questions connexes