오버라이드 2

안드로이드 오버라이드의 비밀과 함정 -Preference

PreferenceActivity의 기본 아이템들은 타이틀, 서머리 또는 체크박스만 있기 때문에 너무 단조롭다. 그래서 안드로이드는 오버라이드해서 내 맘대로 UI를 바꿀수 있도록 제공한다. 결국, 아래 그림처럼 seekbar를 넣어서 좀 더 다이나믹하고 인터랙티비한 형태로 바꿀 수 있다. 방법은1. Preference를 extends 하는 클래스를 하나 만든 다.2. 새로 만든 클래스에서 반드시 onCreateView를 만들어 줘야한다. @Override protected View onCreateView( ViewGroup parent ) { super.onCreateView(parent); mLayoutInFlater = (LayoutInflater) getContext().getSystemServic..

당신은 반드시 아이의 부모를 먼저 제거 해야 합니다?

오버라이드를 하다 보면... 또는 여러가지 뷰 작업등을 하다 보면 저런 경고 아니... 죽여 놓고 내 뱉는 문장을 만나게 된다. 유아이가 정말 복잡하게 되어있자면... 정말 난감하기 따름이 없을 것이다. 이번엔 Preference Override 에서 발생하는 문구에 대해 보겠다. 그냥 답만 내 놓자. onCreateView를 통해 1개만 만든다면 문제 없지만, 여기에다가 onCreateDialogView까지 만들게 되면 다음에 뷰를 띄울 때는 반드시 죽여야 한다. 그러지 않으면 아래 뻘건 문구와 함께 앱이 죽어 있을 것이다. java.lang.IllegalStateException: The specified child already has a parent. You must call removeView(..