Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blackberry 单击按钮字段时更新其上的文本_Blackberry - Fatal编程技术网

Blackberry 单击按钮字段时更新其上的文本

Blackberry 单击按钮字段时更新其上的文本,blackberry,Blackberry,我试图在点击按钮时设置按钮上的文本。我正在初始化一个BigVector,它将用它的值更新按钮的文本。我正在使用一个计数器值来确定应该选择哪个BigVector值。问题是,下面的代码期望计数器值为最终值 单击字段时更新字段上的文本的更好方法是最受欢迎的 这是我的密码- final BigVector bigStringVectorA = new BigVector(); bigStringVectorA.addElement("A Test answer 1"); bigS

我试图在点击按钮时设置按钮上的文本。我正在初始化一个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));
        }
   });

谢谢

您可以尝试调用该字段的invalidate()方法,这将强制重新绘制该按钮

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

您可以在外部类或匿名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));
  }
});