Fragment 5

안전한 프레그먼트 컨텍스트 사용법 -How to use fragment context ?

프레그먼트 생명 주기 실행 시onAttach —> onCreate() —> onViewCreated() —> onActivicyCreated() —> onResume() 해제시onPause() — > onDestroyView() — > onDestroy() —> onDetach() 즉,안전하게 context 를 사용 하려면 @Override public void onAttach(Context context) { super.onAttach(context); mContext = context; } 요렇게 해서 사용한다.프래그먼트 이곳 저곳에서 getContext(), getActivity() 를 부르다가 Null 이 발생할 수 있기 때문에 이렇게 부르는 것이 안전. 더 안전 하려면 부를 때마다 체크 하는게 ..

java.lang.IllegalStateException: Fragment not attached to Activity

not attached to Activity --> 프래그먼트에서 viewpager로 pagetAdapter를 사용 할 경우 getItem으로 newInstance 를 하면서 새로운 메모리를 생성하게 되면서 발생 하는 문제.--> 주로 getString() 등을 사용할 때 발생 한다. 새로운 context가 발생하였지만, 제대로 구성 하지 않아서 발생.--> 간단히 해결 하는 방법 Context 를 메인 액티비티의 것을 사용 해야 한다.--> public static synchronized Context getInstance() { return mContext; }--> MainActivity.getInstance.getString() 아래는 코모의 새로운 앱이에요(19/07/01출시) 일상 카운터 - ..

[안드로이드] 프래그먼트 안정화 시키기

프래그먼트는 액티비티 아빠에게 소속되어있다가 아빠가 잠시 한 눈을 팔 때 붙었다 떨어졌다 하면서 실종되는 문제를 가지고 있다. 즉, 이런 문제 때문에 isAdded를 사용하면 붙어 있나 없나를 알아 낼 수 있지만.. 이건 그냥 임시 방편일 뿐이다. isAdded()를 쓰면 그냥 피해가지만..... 이건 너무 많은 비용이 든다.... 처리 못하는게 너무 많아 진다.... can not resolve android.support.v4.app.FragmentManager.--> getSupportFragmentManager() in your code, not getFragmentManager() You must call removeView() on the child's parent first" 프래그먼트에서 ..

안드로이드 프래그먼트 탭 생성하기 -viewpager

호랑이가 담배 피우지 않던 시절에는 안드로이드는 탭 호스트라는 것을 사용하여 멀티 화면을 정의해서 썼다고 한다. 그럼 호랑이가 골초가 되어버린 요즘에는 어떻게 탭 효과를 낼까? 방법은 간단한데, 요즘 방식으로 되어있는 글이 없어서 남겨 보도록 한다. 1. 안드로이드 스튜디오에서 새 프로젝트 만들기를 한 뒤 Fragment Tab을 선택한다. 2. 일단 메인 액티비티 하나와 레이아웃이 생성 된다. 3. 메인 액티비티는 탭 안에 담을 프래그먼트를 조정할 수 있고, 레이아웃은 타이틀 및 탭 제목등의 효과를 담당한다. 4. 메인 액티비티는 탭을 조정 하기 때문에 탭에 담길 프래그먼트(Fragment)를 넣어주는 작업을 해야 한다.- File에서 New를 한 뒤 Fragment를 하나 생성한다.- Layout도 ..