Java 获取动态添加的视图的ID

Java 获取动态添加的视图的ID,java,android,android-tablelayout,horizontalscrollview,Java,Android,Android Tablelayout,Horizontalscrollview,如何获取动态添加视图的id 我想在按钮单击中将按钮添加到水平滚动视图,但将其限制为三行或四行,然后它将为另外三行或四行重复创建新的表格布局,如下所示- 我怎样才能做到这一点 下面是我的代码: public void addNewButton(int ids, TableLayout table){ Button btn = new Button(challengemode.this); btn.setId(ids); btn.setText(String.valueOf

如何获取动态添加视图的id

我想在按钮单击中将按钮添加到
水平滚动视图
,但将其限制为三行或四行,然后它将为另外三行或四行重复创建新的
表格布局
,如下所示-

我怎样才能做到这一点

下面是我的代码:

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>

您可以使用API 17或更高版本的方法为您的视图生成唯一ID,也可以使用最低版本的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);
}
添加时只需使用

按钮。设置标签(位置)

检索时


按钮。getTag(位置)

你为什么需要身份证?你不能在添加按钮时添加Click listener吗?@Chito Monte请清楚地解释你的问题是什么,比如“我想做xxx,但我获得yyy”你可以添加Click listener。如果要确定哪个索引按钮,可以在创建按钮时向按钮添加标记;btn.setId(id);