如何获取动态添加的视图的ID?
我想在按钮单击中将按钮添加到HorizontalScrollview
,但将其限制为三或四行,然后它将为另外三到四行创建新的TableLayout
,如下所示-
我该如何实现?
下面是我的代码:
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>
答案 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(位置);