Обновить текст в поле кнопки при нажатии - PullRequest
0 голосов
/ 23 февраля 2011

Я пытаюсь установить текст на кнопке при ее нажатии. Я инициализирую BigVector, который обновит текст кнопки с ее значением. Я использую значение счетчика, чтобы определить, какое значение BigVector должно быть выбрано. Проблема в том, что приведенный ниже код ожидает, что значение счетчика будет окончательным.

Лучше всего использовать методологию обновления текста в поле при нажатии на него.

Вот мой код -

    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 ]

2 голосов
/ 23 февраля 2011

Вы можете сделать счетчик переменной экземпляра, либо во внешнем классе, либо в анонимном 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 голосов
/ 23 февраля 2011

Вы можете попытаться вызвать метод invalidate () этого поля, и это должно вызвать перерисовку этой кнопки.

aAnswerOptionButton.setChangeListener(new FieldChangeListener() {  
         public void fieldChanged(Field field, int context) {  
            aAnswerOptionButton.setText((String)bigStringVectorA.elementAt(counter));
            aAnswerOptionButton.invalidate();
        }
   });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...