2010-03-23 5 views
1

Je suis coincé avec un problème de création de boutons dynamiquement dans Android. C'est ce que je veux faire-Aide: 8 X 10 tableau bidimensionnel de boutons dans Android

Je veux créer un tableau de 8 x 10 boutons. Puisque déclarer 80 boutons dans main.xml n'est pas efficace, je veux le faire dans le programme lui-même. Le plus gros problème est de placer/aligner les boutons comme une grille. Je peux créer des objets de bouton mais comment les aligner dans le programme?

Button b = new Button(this); 
b.setId(i); 
b.setText("Button " + i); 

Comme this-

1 1 1 1 1 1 1 1 1 1 
2 2 2 2 2 2 2 2 2 2 
. 
. 
. 
10 10 10 10 10 10 10 10 10 10 

Toute aide à le faire "programtically" sera apprécié

+0

Wow! Quel appareil utilisez-vous qui a un écran assez grand pour afficher 80 boutons cliquables? –

+0

@Matt Lacey: le clavier logiciel a une largeur de 10 à 11 touches, selon la disposition. OP veut 8, ce qui ne semble pas déraisonnable en comparaison. et 10 boutons en hauteur devrait être encore plus facile. –

+0

L'idée de 80 boutons sur un écran sonne encore l'utilisabilité et la conception des cloches d'alarme pour moi bien. –

Répondre

3

Vous avez besoin d'un conteneur pour les placer tous dans:

<LinearLayout 
    android:id="@+id/llContainer" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" /> 

Et alors je les ajouterais comme 10 'rangées' distinctes:

LinearLayout container = (LinearLayout) findViewById(R.id.llContainer); 

for(int i = 0; i < 10; i++) { 
    LinearLayout row = new LinearLayout(this, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
    container.addView(row); 

    for(int x = 0; x < 8; x++) { 

     Button btn = new Button(this, new LayouParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
     btn.setText(i + ':' + x); 

     row.addView(btn); 

    } 
} 
Questions connexes