获取动态添加的视图的ID

时间:2018-11-14 04:38:18

标签: java android android-tablelayout horizontalscrollview

如何获取动态添加的视图的ID?

我想在按钮单击中将按钮添加到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 :(得分:0)

您可以使用generateViewId()方法为API 17或更高版本生成唯一的ID,也可以为最低的Android版本使用ViewIdGenerator 。 只需将您的代码修改为

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

答案 1 :(得分:0)

添加时只需使用

button.setTag(位置);

检索时

button.getTag(位置);