안드로이드 개발 질문/답변
(글 수 45,052)
어제 한 질문인데.. 어떤 분이 로그캣을 자세히 넣어 달라고 하셔서 다시 질문 올립니다.
아래와 같이요.. onCreate() 에서 setContentView() 와 onRestart() 에서의 setContentView() 가 어떤 조건에 따라
다른 xml 자원을 가지는 view 를 불러오게 하고 싶은데요....
이 방법으로는 항상 처음에는 에러가 되고.. 그 다음부터는 적용이 잘 됩니다.
처음부터 에러없이 되게 하고 싶은데 방법이 없는지요..
에러 발생 지역은 onRestart()에서 발생합니다..
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(MagentMatch.TAG, "main onCreate()");
state = false;
if(state){
setContentView(R.layout.sub);
} else {
setContentView(R.layout.main);
}
}
...
..
public void onRestart(){
super.onRestart();
state = true;
if(state){
setContentView(R.layout.sub);
} else {
setContentView(R.layout.main);
}
}
----------- 아래는 로그 캣의 내용입니다. ----
05-11 09:29:50.801: WARN/dalvikvm(191): threadid=3: thread exiting with uncaught exception (group=0x4001aa28)
05-11 09:29:50.801: ERROR/AndroidRuntime(191): Uncaught handler: thread main exiting due to uncaught exception
05-11 09:29:50.883: ERROR/AndroidRuntime(191): java.lang.IllegalArgumentException: parameter must be a descendant of this view
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:2513)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.view.ViewGroup.offsetDescendantRectToMyCoords(ViewGroup.java:2450)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.view.ViewRoot.scrollToRectOrFocus(ViewRoot.java:1432)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.view.ViewRoot.draw(ViewRoot.java:1174)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.view.ViewRoot.performTraversals(ViewRoot.java:1097)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.view.ViewRoot.handleMessage(ViewRoot.java:1613)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.os.Handler.dispatchMessage(Handler.java:99)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.os.Looper.loop(Looper.java:123)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.app.ActivityThread.main(ActivityThread.java:4203)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at java.lang.reflect.Method.invokeNative(Native Method)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at java.lang.reflect.Method.invoke(Method.java:521)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at dalvik.system.NativeStart.main(Native Method)
아래와 같이요.. onCreate() 에서 setContentView() 와 onRestart() 에서의 setContentView() 가 어떤 조건에 따라
다른 xml 자원을 가지는 view 를 불러오게 하고 싶은데요....
이 방법으로는 항상 처음에는 에러가 되고.. 그 다음부터는 적용이 잘 됩니다.
처음부터 에러없이 되게 하고 싶은데 방법이 없는지요..
에러 발생 지역은 onRestart()에서 발생합니다..
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(MagentMatch.TAG, "main onCreate()");
state = false;
if(state){
setContentView(R.layout.sub);
} else {
setContentView(R.layout.main);
}
}
...
..
public void onRestart(){
super.onRestart();
state = true;
if(state){
setContentView(R.layout.sub);
} else {
setContentView(R.layout.main);
}
}
----------- 아래는 로그 캣의 내용입니다. ----
05-11 09:29:50.801: WARN/dalvikvm(191): threadid=3: thread exiting with uncaught exception (group=0x4001aa28)
05-11 09:29:50.801: ERROR/AndroidRuntime(191): Uncaught handler: thread main exiting due to uncaught exception
05-11 09:29:50.883: ERROR/AndroidRuntime(191): java.lang.IllegalArgumentException: parameter must be a descendant of this view
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:2513)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.view.ViewGroup.offsetDescendantRectToMyCoords(ViewGroup.java:2450)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.view.ViewRoot.scrollToRectOrFocus(ViewRoot.java:1432)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.view.ViewRoot.draw(ViewRoot.java:1174)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.view.ViewRoot.performTraversals(ViewRoot.java:1097)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.view.ViewRoot.handleMessage(ViewRoot.java:1613)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.os.Handler.dispatchMessage(Handler.java:99)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.os.Looper.loop(Looper.java:123)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at android.app.ActivityThread.main(ActivityThread.java:4203)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at java.lang.reflect.Method.invokeNative(Native Method)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at java.lang.reflect.Method.invoke(Method.java:521)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
05-11 09:29:50.883: ERROR/AndroidRuntime(191): at dalvik.system.NativeStart.main(Native Method)