Справка: 8 X 10 2-мерный массив кнопок в Android - PullRequest
2 голосов
/ 23 марта 2010

Я застрял с проблемой создания кнопок динамически в Android. Это то, что я хочу сделать-

Я хочу создать массив кнопок 8х10. Поскольку объявление 80 кнопок в main.xml неэффективно, я хочу сделать это в самой программе. Самая большая проблема - это размещение / выравнивание кнопок как сетки. Я могу создавать объекты кнопок, но как их выровнять в программе?

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

Как это-

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

Буду признателен за любую помощь в этом "программно"

1 Ответ

3 голосов
/ 23 марта 2010

Вам нужен контейнер, чтобы поместить их все в:

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

А потом я бы добавил их как 10 отдельных 'строк':

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);

   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...