본문 바로가기
programming/android

[Android / 안드로이드] Fragment findViewById() 에러 해결법

by fluorite94 2018. 9. 15.
반응형

Fragment에서 findViewById()함수를 호출하면 아래와 같은 에러가 발생하며 호출이 되지 않습니다.

 

java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference

 

이 에러가 발생하는 이유는 Fragment View가 inflate하기전에 컴포넌트를 호출하기 때문에 

NullPointerException 에러가 발생한 것입니다. 

 

getView() 메서드를 통해서도 해결 할 수 있지만 Fragment onCreateView함수에서 View 객체에 현재 View에 가져와 

그 View에서 원하는 컴포넌트를 찾으면 해결 됩니다.

 

public class TabFramgent extends Fragment {
    ...
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View v = inflater.inflate(R.layout.fragment_tab_framgent, container, false);

        TextView txtId = (TextView)v.findViewById(R.id.txtId);

        return v;
    }
    ...
}

 

반응형


댓글