커스텀 다이얼로그에 입력받은 값을 서버에 보내고 응답을 받아서 그 값을 ListView에 add하고 싶습니다.
문제는 다이얼로그에서 입력한 값이 서버 요청과 응답은 잘 작동하나 ListView에 갱신이 되지 않는 문제인데요.
이 커스텀된 다이얼로그는 Dialog 클래스에서 직접 상속받아 UI와 이벤트 핸들러를 구현했습니다.
메인 Activity에서 메뉴옵션아이템 클릭으로 다이얼로그가 띄워지는데, Activity는 넘기지 않습니다.
다이얼로그 클래스에서 ListView갱신을 위해 직접 View를 그리는 Adapter를 포함해서 클릭 이벤트에
넣어봤는데 IllegalStateException이 발생하더라구요..
해결방법을 찾아보니, 두가지가 아이디어가 있었습니다.
첫째는 runOnUiThread()를 재정의해야 한다는데 구체적으로 어떻게 재정의를 해야하는지 모르겠습니다.
두번째는 다이얼로그가 띄워질때 onCreateDialog() 메서드로 Activity가 다이얼로그를 띄우듯이setOnDismissListener로 다이얼로그가 사라질때 뷰를 그리는 방식을 생각해봤는데, 이것도 마찬가지로 어떻게 정의를 해야하는지 모르겠습니다.
혹시 이 문제와 제가 찾은 해결방안에 대해서.. 아시거나 더 좋은 방법이 있다면 조언을 구하고 싶습니다..
------------------------------------------------------ 아래는 해당 오류 로그캣 12-18 20:26:45.231: E/AndroidRuntime(415): java.lang.IllegalStateException: System services not available to Activities before onCreate() 12-18 20:26:45.231: E/AndroidRuntime(415): at android.app.Activity.getSystemService(Activity.java:3536) 12-18 20:26:45.231: E/AndroidRuntime(415): at android.app.Dialog.<init>(Dialog.java:141) 12-18 20:26:45.231: E/AndroidRuntime(415): at android.app.AlertDialog.<init>(AlertDialog.java:63) 12-18 20:26:45.231: E/AndroidRuntime(415): at android.app.ProgressDialog.<init>(ProgressDialog.java:80) 12-18 20:26:45.231: E/AndroidRuntime(415): at android.app.ProgressDialog.<init>(ProgressDialog.java:76) 12-18 20:26:45.231: E/AndroidRuntime(415): at android.app.ProgressDialog.show(ProgressDialog.java:101) 12-18 20:26:45.231: E/AndroidRuntime(415): at android.app.ProgressDialog.show(ProgressDialog.java:95) 12-18 20:26:45.231: E/AndroidRuntime(415): at com.example.newlistadapter.NewListAdapterActivity.getNewList(NewListAdapterActivity.java:46) 12-18 20:26:45.231: E/AndroidRuntime(415): at com.example.newlistadapter.Dialog_Edit.onClick(Dialog_Edit.java:54) 12-18 20:26:45.231: E/AndroidRuntime(415): at android.view.View.performClick(View.java:2485) 12-18 20:26:45.231: E/AndroidRuntime(415): at android.view.View$PerformClick.run(View.java:9080) 12-18 20:26:45.231: E/AndroidRuntime(415): at android.os.Handler.handleCallback(Handler.java:587) 12-18 20:26:45.231: E/AndroidRuntime(415): at android.os.Handler.dispatchMessage(Handler.java:92) 12-18 20:26:45.231: E/AndroidRuntime(415): at android.os.Looper.loop(Looper.java:130) 12-18 20:26:45.231: E/AndroidRuntime(415): at android.app.ActivityThread.main(ActivityThread.java:3683) 12-18 20:26:45.231: E/AndroidRuntime(415): at java.lang.reflect.Method.invokeNative(Native Method) 12-18 20:26:45.231: E/AndroidRuntime(415): at java.lang.reflect.Method.invoke(Method.java:507) 12-18 20:26:45.231: E/AndroidRuntime(415): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 12-18 20:26:45.231: E/AndroidRuntime(415): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 12-18 20:26:45.231: E/AndroidRuntime(415): at dalvik.system.NativeStart.main(Native Method)