2011-07-29 9 views
0

次のコードをシミュレータで実行すると、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

あなたはそのスクロールを聞いているのと同じフィールド上setHorizontalScroll()を呼び出すことによって、かなりの無限ループに取得しています。私はこの行を削除し、あなたのコードが動作するかどうかを確認します。

+0

こんにちは。私は行を削除..しかし、私はゆっくり水平スクロールバーを移動すると、そのスタックオーバーフローのエラーをスローする。私はこのエラーのために何をすべきですか?または他のアイデア.. plsは私に助けます。 – RVG

+0

この行にのみ問題が発生しました。 setHorizo​​ntalScroll()。私は行を削除しました。そしてどこで私のプログラムでこの行を使うことができますか?スクロール後の中心位置です。 Plsは任意のアイデアを与える。 – RVG

+0

私はスクロールした後にフィールドを中央に移動する必要があります。plsはどんな考えもします。 – RVG

関連する問題