使用setId()从变量中分配已知的ID

时间:2015-03-03 11:20:24

标签: java android android-xml

我有一个RelativeLayout,有四行三个按钮。我在XML文件中创建了ID,如下所示:

<resources>
    <item type="id" name="row1" />
    <item type="id" name="button1" />
    <item type="id" name="button2" />
    <item type="id" name="button3" />
    <item type="id" name="row2" />
    <item type="id" name="button4" />
    <item type="id" name="button5" />
    ...
</resources>

我可以找到按下哪个按钮:

public void onClick(View v) {
    switch (v.getId()) {
        case R.id.button1:
            // do something
            break;
        case R.id.button2:
            // do something else
            break;
        case R.id.button3:
            // i'm lazy, do nothing
            break;
    }
}

但我无法弄清楚如何在循环中创建按钮时将ID分配给按钮。理想情况下,我想在循环中使用setId(R.id.myKnownId),但我不能。

有没有人知道如何才能做到这一点,除了在创建按钮后对其进行硬编码?

编辑:已添加代码。

for ( int j = 1 ; j < 5 ; j ++ ) {
        int rowtemp = j;
        currentRow.setTag("row"+rowtemp);
        currentRow.setId(rowtemp); //<-- I want to add R.id.definedId here

        for (int i = 1; i < 4; i++) {

            Button btn = new Button(this);
            int temp = buttonNumber;
            btn.setId(temp); //<-- same thing here
            btn.setTag("button"+buttonNumber);
            btn.setText(buttonNumber + "");
            btn.setOnClickListener(this);
            }
            buttonNumber++;
        }
}

0 个答案:

没有答案