-1

I have a for loop that creates ButtonFields with identical text values. I want to get a distinct event from each of those buttons, which tells me which index of the for loop created the button. I don't want to create an anonymous class for each ButtonField.

4

2 回答 2

3

如果他们一一进行(我从您的帖子中假设),您可以记住fieldChanged方法中下一个代码中第一个使用的索引:

if (field instanceof ButtonField) {
   int buttonIndex = field.getManager().getFieldIndex(field) - zeroButtonInex;
}

不要忘记分配FieldChangeListener给这些按钮中的每一个。

或者确保您可以从ButtonField(可以匿名)创建新课程,您可以在其中保存索引并为其设置吸气剂。

于 2012-08-29T06:29:42.530 回答
3

您已将按钮添加到数组中。我会给你一个想法来试试这个:

private ButtonField buttonsObj[];

for循环之前的代码中,您知道按钮的数量,因此您可以初始化数组长度。

int size = 10;
buttonsObj = new ButtonFields[size];
for(int i = 0; i < size; i++)
{
    buttonsObj[i] = new ButtonFields["btn"];

    buttonsObj[i].setChangeListener(this);
    add(buttonsObj[i]);
}

public void fieldChanged(Field field, int context) {
    for(int i=0;i<size;i++) {
        if(field == buttonsObj[i]) {
            // you can trigger your event 
        }
    }
}
于 2012-08-29T06:30:08.267 回答