J'ai une classe qui aura besoin de ~ 100 boutons. Je sais que je peux le code comme ceci:Manière plus efficace d'initier 100 boutons
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/scroll"
android:fillViewport="true"
android:scrollbars="none"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="10dp"
android:paddingBottom="65dp" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:paddingRight="5dp"
android:paddingLeft="5dp"
android:background="@drawable/scrollviewborder"
android:fillViewport="true" >
<Button
android:id="@+id/b1"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b2"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b3"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b4"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b5"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b6"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b7"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b8"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b9"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b10"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b11"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b12"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b13"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b14"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b15"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b16"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b17"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b18"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b19"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
<Button
android:id="@+id/b20"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:textSize="18sp" />
</LinearLayout>
</ScrollView>
Mais cela ne semble pas les performances très efficace et je sais que si je continue à le faire, il signaleront bientôt un avertissement que j'ai trop de lignes de code. Y a-t-il une manière plus élégante de faire ceci? XML ou en Java fera l'affaire, peu importe le chemin.
EDIT
J'ai provoqué un tollé à avoir 100 boutons dans ma conception. Laissez-moi vous expliquer pourquoi.
Quelqu'un joue-t-il à l'application Android/Apple Candy Crush Saga? Vous savez comment ils ont plus de 400 niveaux à jouer que vous débloquez un à la fois? C'est similaire à ce que je fais, c'est pourquoi j'ai besoin de tant de boutons.
Après cette explication, si je suis toujours en train de faire ce mal, s'il vous plaît laissez-moi savoir que je suis encore un programmeur débutant Android.
Eh bien ... Pourquoi vous avez besoin de tant de boutons? S'ils font tous quelque chose de similaire, ils peuvent être créés et ajoutés en utilisant une boucle. – WouterH
Vous pourriez essayer de définir un seul bouton dans une mise en page et si nécessaire, mais un ListView pourrait être mieux. –
Au lieu de LinearLayout et tant de boutons à l'intérieur, pourquoi ne pas utiliser un ListView à la place? – gunar