Recent Posts
Recent Comments
MyCloud
[안드로이드] Fragment에서 findViewById 에러 해결 방법 본문
Fragment에서 findViewById error
Fragment에서 바인딩을 위해 findViewById() 함수를 사용한다면 다음과 같은 오류가 발생합니다.
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
이유는 아직 inflation 이전의 View에 컴포넌트를 부르는 함수를 호출하기 때문에 널 포인터 오류가 나는 것 입니다.
getView() 메서드를 통해 해결하는 방법도 있지만 가장 깔끔한 방법은 View 객체를 이용하는 것 입니다.
public class SearchFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Toast.makeText(this.getContext(), "This is SearchFragment", Toast.LENGTH_SHORT).show();
View v = inflater.inflate(R.layout.fragment_search, container, false);
TextView local = (TextView) v.findViewById(R.id.local);
return v;
}
}
위와 같이 View 객체에 현재 뷰를 담고 이를 이용하여 findViewById()를 호출하면 됩니다.
'Programming > Android' 카테고리의 다른 글
[Android] ColorFilter로 ImageView에 어두운 효과주기 (1) | 2016.07.15 |
---|---|
[안드로이드] Custom CardView 만들기 (1) | 2016.07.02 |
[안드로이드] Daum 지도 API 연동 시 발생하는 문제 (10) | 2016.06.29 |
[안드로이드] TabLayout과 ViewPager 만들기 (37) | 2016.06.26 |
[안드로이드] RecyclerView를 이용한 CardView 만들기 (2) | 2016.05.27 |
Comments