Android:获取动态创建按钮的id
我在运行时创建了10个按钮。我怎样才能得到他们的身份证Android:获取动态创建按钮的id,android,Android,我在运行时创建了10个按钮。我怎样才能得到他们的身份证 private void buttons() { int count = 10; for (int i = 0; i < count; i++) { Button newButton = new Button(this); newButton.setId("button_" + i); LinearLayout ll = (LinearLayout)findViewBy
private void buttons() {
int count = 10;
for (int i = 0; i < count; i++) {
Button newButton = new Button(this);
newButton.setId("button_" + i);
LinearLayout ll = (LinearLayout)findViewById(R.id.linear);
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
ll.addView(newButton,lp);
}
}
使用视图的()方法:
button_1.getId();
使用视图的()方法:
button_1.getId();
跟踪按钮的实例。在代码中创建控件时,不要使用ID 例如:
Map<Integer, Button> buttons = new HashMap<Integer, Button>()
for (int i = 0; i < count; i++) {
Button newButton = new Button(this);
buttons.add(i, newButton);
...
}
Map按钮=新建HashMap()
for(int i=0;i
跟踪按钮的实例。在代码中创建控件时,不要使用ID
例如:
Map<Integer, Button> buttons = new HashMap<Integer, Button>()
for (int i = 0; i < count; i++) {
Button newButton = new Button(this);
buttons.add(i, newButton);
...
}
Map按钮=新建HashMap()
for(int i=0;i
除非设置动态创建的按钮的ID,否则它们不会有特定的ID。因此,当您创建这些按钮时,通过以下方式设置一些id
button.setId(something)
button.setId(某物)
然后
button.getId()
button.getId()
除非设置动态创建的按钮的ID,否则它们不会有特定的ID。因此,当您创建这些按钮时,通过以下方式设置一些id button.setId(something) button.setId(某物) 然后 button.getId() button.getId()
你的问题形式不好。我假设您不想获取id本身,而是想访问您不知道的
按钮。因此,基本上,使用id
无法实现这一点。您完全误解了视图中id
的概念-它只是视图
对象中的一个字段,您可以使用它来标识特定对象,但不能将其用作字段名,因此不可能使用1.getX()(其中1
是按钮的id)
您需要创建一个按钮数组(而不是创建一堆称为b1、b2、b3、b4等的按钮),并使用索引访问它们:
private void buttons() {
int count = 10;
Button [] buttons = new Button[count];
for (int i = 0; i < count; i++) {
buttons[i] = new Button(this);
LinearLayout ll = (LinearLayout)findViewById(R.id.linear);
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
ll.addView(buttons[i],lp);
}
}
我已经在函数内部创建了这个数组,但是如果您想从函数外部访问它,您可能需要将它声明为类的一个字段。您的问题格式不正确。我假设您不想获取id本身,而是想访问您不知道的按钮。因此,基本上,使用id
无法实现这一点。您完全误解了视图中id
的概念-它只是视图
对象中的一个字段,您可以使用它来标识特定对象,但不能将其用作字段名,因此不可能使用1.getX()(其中1
是按钮的id)
您需要创建一个按钮数组(而不是创建一堆称为b1、b2、b3、b4等的按钮),并使用索引访问它们:
private void buttons() {
int count = 10;
Button [] buttons = new Button[count];
for (int i = 0; i < count; i++) {
buttons[i] = new Button(this);
LinearLayout ll = (LinearLayout)findViewById(R.id.linear);
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
ll.addView(buttons[i],lp);
}
}
我已经在函数内部创建了这个数组,但是如果您想从函数外部访问它,您可能需要将它声明为类的一个字段。尽管您的问题还不够清楚,很明显,您甚至没有尝试搜索已经存在的答案。虽然您的问题不够清楚,但很明显,您甚至没有尝试搜索已经存在的答案。很好的一个答案,尽管数组已经足够了。请参见用例。如果您需要对特定按钮的引用,则需要某种键。当你不需要引用时,那么列表/数组就根本不需要了。我想毕竟,这不是一个真正的问题:尽管数组已经足够了,但它是一个很好的问题。如果您需要对特定按钮的引用,则需要某种键。如果你不需要引用,那么列表/数组就根本不需要了。我想,毕竟,这不是一个真正的问题:pYes,这就是我想要的。对不起,英语不是我的母语。它与英语无关,只是你没有真正理解你想要达到的目标,但没关系。我们设法找到了答案。:-)谢谢你D的工作方式很有魅力,请添加按钮[i]。如果您愿意,setId(i)
稍后可以更好地识别按钮:)是的,这就是我想要的。对不起,英语不是我的母语。它与英语无关,只是你没有真正理解你想要达到的目标,但没关系。我们设法找到了答案。:-)谢谢你D工作起来很有魅力,请添加按钮[i]。如果您愿意,稍后再识别setId(i)
会更好:)