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.
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
J'ai mis à jour la réponse, j'espère que cela clarifie votre question. – Maragues