Получение идентификатора динамически добавленных просмотров - PullRequest
0 голосов
/ 14 ноября 2018

Как получить идентификатор динамически добавленных представлений?

Я хочу добавить кнопки к HorizontalScrollview при нажатии кнопки, но ограничить его тремя или четырьмя рядами, тогда он создаст новый TableLayout для еще трех - четырех рядов, как показано ниже -

THE IMAGE IS HERE

Как мне этого добиться?

Ниже мой код:

public void addNewButton(int ids, TableLayout table){
    Button btn = new Button(challengemode.this);
    btn.setId(ids);
    btn.setText(String.valueOf("btn" + ids));
    btn.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT,TableLayout.LayoutParams.WRAP_CONTENT));
    table.addView(btn);
    horizontalScrollView.removeAllViews();
    horizontalScrollView.addView(table);
}

Вот XML,

<HorizontalScrollView
                android:id="@+id/horizontalScrollViewGCode"
                android:layout_width="125pt"
                android:layout_height="match_parent"
                android:layout_marginLeft="10dp"
                android:background="@color/colorPrimaryDark">

                <!--TABLE LAYOUT 1-->
                <TableLayout
                    android:id="@+id/tblLayout1"
                    android:layout_height="match_parent"
                    android:layout_width="match_parent"
                    android:stretchColumns="*"
                    android:fillViewport="true"
                    android:orientation="vertical">

                </TableLayout>

            </HorizontalScrollView>

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Просто используйте при добавлении

button.setTag (положение);

при получении

button.getTag (положение);

0 голосов
/ 14 ноября 2018

Вы можете сгенерировать уникальный идентификатор для просмотра с помощью метода generateViewId () для API 17 или выше, или вы можете использовать ViewIdGenerator для самой низкой версии Android.Просто измените свой код на

    public void addNewButton(int ids, TableLayout table){
    Button btn = new Button(challengemode.this);
    btn.setId(ViewIdGenerator.generateViewId());
    btn.setText(String.valueOf("btn" + ids));
    btn.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT,TableLayout.LayoutParams.WRAP_CONTENT));
    table.addView(btn);
    horizontalScrollView.removeAllViews();
    horizontalScrollView.addView(table);
}
...