在黑莓上滚动更改监听器

时间:2011-07-29 08:37:04

标签: blackberry java-me

当我在模拟器上执行以下代码时,它会抛出stackoverflow错误。

我认为错误来了,滚动时每个newhorizo​​ntalScroll值。

如何避免它或如何计算最终的水平滚动值?

int customfiledwidth = Display.getWidth()/3;


HorizontalFieldManager horizontalScrollLayout = new HorizontalFieldManager(HorizontalFieldManager.HORIZONTAL_SCROLL)
horizontalScrollLayout.setScrollListener(this);

// i add number of customfield on horizontalscrolllayout.....

public void scrollChanged(Manager manager, int newHorizontalScroll,int newVerticalScroll) 
{
    {

        horizontalScrollLayout.setHorizontalScroll(newHorizontalScroll);
        int fieldIndex =horizontalScrollLayout.getFieldAtLocation(newHorizontalScroll+customfieldwidth,0);
        Field f = horizontalScrollLayout.getField(fieldIndex);
        f.setFocus();
        invalidate();
        }}
    }

1 个答案:

答案 0 :(得分:1)

通过在您正在收听其滚动的同一个字段上调用setHorizontalScroll(),您将进入无限循环。我会删除这一行,看看你的代码是否有效。