2011-02-23 55 views
0

我試圖在單擊按鈕時設置按鈕上的文本。我正在初始化一個BigVector,它將用它的值更新按鈕的文本。我使用計數器值來確定wihcih BigVector值應該被選中。問題是,下面的代碼期望計數器值是最終的。單擊按鈕時更新buttonfield上的文本

當點擊字段時更新字段上文本的更好方法是非常受歡迎的。

這裏是我的代碼 -

final BigVector bigStringVectorA = new BigVector(); 
    bigStringVectorA.addElement("A Test answer 1"); 
    bigStringVectorA.addElement("A Test answer 2"); 
    bigStringVectorA.addElement("A Test answer 3"); 

    aAnswerOptionButton.setChangeListener(new FieldChangeListener() { 
     public void fieldChanged(Field field, int context) { 
      aAnswerOptionButton.setText((String)bigStringVectorA.elementAt(counter)); 
     } 
    }); 

感謝

回答

2

可以使計數器的實例變量,無論是在外部類或匿名FieldChangeListener:

aAnswerOptionButton.setChangeListener(new FieldChangeListener() { 
    private int counter = 0; 
    public void fieldChanged(Field field, int context) { 
    counter++; 
    if (counter > bigStringVectorA.size()) { 
     counter = 0; 
    } 
    aAnswerOptionButton.setText((String)bigStringVectorA.elementAt(counter)); 
    } 
}); 
0

你可以嘗試致電該字段的無效()方法,並應迫使該按鈕的重繪。

aAnswerOptionButton.setChangeListener(new FieldChangeListener() { 
     public void fieldChanged(Field field, int context) { 
      aAnswerOptionButton.setText((String)bigStringVectorA.elementAt(counter)); 
      aAnswerOptionButton.invalidate(); 
     } 
    });