2013-06-08 4 views
0

내 작업에서 ActionBar.TabListener를 사용합니다. 4 개의 탭이 있고 각 탭에는 자체 조각이 있습니다. OnTabSelected 함수에 의해 탭을 변경하고자 할 때, 동적으로 tablerows를 추가하기 위해 조각에서 tablelayout을 찾으려고합니다. 그러나 그것은 null excetion을 반환합니다. 여기에서 많은 기사를 검색 한 후에는 이전 조각 레이아웃에서 ID를 찾은 이유가 있다고 생각했습니다. 현재 조각이 준비 될 때까지 기다려야합니다. (onFinishinflate() 같은?) 아무도 그것을 알아내는 방법을 말할 수 있을까 ?? 고마워요! 여기 findViewById는 ActionBar를 사용할 때 onTabSelected 함수에서 null을 반환합니다.

내 코드

public void onTabSelected(ActionBar.Tab tab,FragmentTransaction fragmentTransaction{ 
     mViewPager.setCurrentItem(tab.getPosition()); 
     if (tab.getPosition() == 0){ 
       TableLayout table = (TableLayout) this.findViewById(R.id.TableLayout1); 
     } 
} 

답변

1

대신 사용

this.findViewById 

사용

getActivity().findViewById 

또는 처음에 컨텍스트 저장하는 변수를 만들 :

Context context = this; 

다음

context.findViewById 
+0

친애 코헨을 사용하여, 당신의 회신 주셔서 감사합니다,하지만 내 프로젝트는 getActivity이 donen't FragmentActivity를 확장합니다. 두 번째 방법은 여전히 ​​null을 반환합니다. – Matthew

관련 문제