2011-07-29 6 views
0

시뮬레이터에서 다음 코드를 실행하면 stackoverflow 오류가 발생합니다.블랙 베리의 스크롤 변경 리스너

나는 스크롤 할 때 각 newhorizontalScroll 값에 대한 오류가 발생했다고 생각합니다.

피하는 방법이나 최종 수평 스크롤 값을 계산하는 방법은 무엇입니까?

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

이 줄에 대해서만 문제가 발생했습니다. setHorizontalScroll() 나는 라인을 지웠다. 그런 다음 어디에서 내 프로그램에서이 라인을 사용할 수 있을까? 스크롤 후 중심 위치에 대한 것입니다. Pls 어떤 아이디어를 제공합니다. – RVG

+0

나는 스크롤 한 후 센터에서 필드를 움직일 필요가있다. pls는 어떤 생각을한다. – RVG

관련 문제