Android:获取动态创建按钮的id

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

我在运行时创建了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)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)
会更好:)