区分不同按钮字段中的事件

时间:2012-08-29 06:11:51

标签: blackberry java-me

我有一个for循环,用于创建具有相同文本值的ButtonFields。我想从每个按钮中获取一个不同的事件,它告诉我for循环的哪个索引创建了按钮。我不想为每个ButtonField创建一个匿名类。

2 个答案:

答案 0 :(得分:3)

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

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

不要忘记为每个按钮分配FieldChangeListener

或者确定你可以从ButtonField(可以通过匿名)创建你的新课程,你可以在那里保存索引并获得它。

答案 1 :(得分: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 
        }
    }
}