Не удается добавить AlertDialog в приложении Tabbar в Android? - PullRequest
0 голосов
/ 08 января 2012

Я включил панель вкладок для Android, она прекрасно работает для Views, но когда я пытаюсь запустить AlertDialogs, приложение кажется сбойным, я добавил журнал cat. Пожалуйста, посоветуйте мне, как решить эту проблему. Спасибо

01-08 04: 14: 21.575: E / AndroidRuntime (381): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основное 01-08 04: 14: 21.575: E / AndroidRuntime (381): java.lang.RuntimeException: невозможно запустить действие. ComponentInfo {com.CarBuyCo / com.CarBuyCo.Tabbed}: java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.CarBuyCo / com.CarBuyCo.TabGroup1Activity}: java.lang.RuntimeException: невозможно создать экземпляр действия. ComponentInfo {com.CarBuyCo / com.CarBuyCo.Scroller}: java.lang.IllegalStatereate toception (не доступно для системы: ) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1651) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:1667) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.ActivityThread.access $ 1500 (ActivityThread.java:117) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:935) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.os.Handler.dispatchMessage (Handler.java:99) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.os.Looper.loop (Looper.java:130) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.ActivityThread.main (ActivityThread.java:3687) 01-08 04: 14: 21.575: E / AndroidRuntime (381): at java.lang.reflect.Method.invokeNative (собственный метод) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на java.lang.reflect.Method.invoke (Method.java:507) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:842) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:600) 01-08 04: 14: 21.575: E / AndroidRuntime (381): at dalvik.system.NativeStart.main (собственный метод) 01-08 04: 14: 21.575: E / AndroidRuntime (381): вызвано: java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.CarBuyCo / com.CarBuyCo.TabGroup1Activity}: java.lang.RuntimeException: невозможно создание экземпляра действия ComponentInfo {com.CarBuyCo / com.CarBuyCo.Scroller}: java.lang.IllegalStateException: системные службы недоступны для операций до onCreate () 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1651) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.ActivityThread.startActivityNow (ActivityThread.java:1491) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.LocalActivityManager.moveToState (LocalActivityManager.java:127) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.LocalActivityManager.startActivity (LocalActivityManager.java:339) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.widget.TabHost $ IntentContentStrategy.getContentView (TabHost.java:657) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.widget.TabHost.setCurrentTab (TabHost.java:329) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.widget.TabHost.addTab (TabHost.java:219) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на com.CarBuyCo.Tabbed.addTab1 (Tabbed.java:51) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на com.CarBuyCo.Tabbed.setTabs (Tabbed.java:31) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на com.CarBuyCo.Tabbed.onCreate (Tabbed.java:23) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1047) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1615) 01-08 04: 14: 21.575: E / AndroidRuntime (381): ... еще 1101-08 04: 14: 21.575: E / AndroidRuntime (381): вызвано: java.lang.RuntimeException: невозможно создать экземпляр действия ComponentInfo {com.CarBuyCo / com.CarBuyCo.Scroller}: java.lang.IllegalStateException: системные службы недоступно для действий до onCreate () 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1573) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.ActivityThread.startActivityNow (ActivityThread.java:1491) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.LocalActivityManager.moveToState (LocalActivityManager.java:127) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.LocalActivityManager.startActivity (LocalActivityManager.java:339) 01-08 04: 14: 21.575: E / AndroidRuntime (381): в com.CarBuyCo.TabGroupActivity.startChildActivity (TabGroupActivity.java:61) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на com.CarBuyCo.TabGroup1Activity.onCreate (TabGroup1Activity.java:10) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1047) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1615) 01-08 04: 14: 21.575: E / AndroidRuntime (381): ... еще 22 01-08 04: 14: 21.575: E / AndroidRuntime (381): вызвано: java.lang.IllegalStateException: системные службы недоступны для операций перед onCreate () 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.Activity.getSystemService (Activity.java:3536) 01-08 04: 14: 21.575: E / AndroidRuntime (381): в com.android.internal.app.AlertController $ AlertParams. (AlertController.java:747) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.AlertDialog $ Builder. (AlertDialog.java:273) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на com.CarBuyCo.Scroller.makeAndShowDialogBox (Scroller.java:459) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на com.CarBuyCo.Scroller. (Scroller.java:33) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на java.lang.Class.newInstanceImpl (собственный метод) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на java.lang.Class.newInstance (Class.java:1409) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.Instrumentation.newActivity (Instrumentation.java:1021) 01-08 04: 14: 21.575: E / AndroidRuntime (381): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1565) 01-08 04: 14: 21.575: E / AndroidRuntime (381): ... еще 29

1 Ответ

0 голосов
/ 08 января 2012

Как говорится в журнале, вы не можете получить системный сервис, пока не будет вызвано создание действия. Поэтому переместите вызов getSystemService в Oncreate или после.

Далее вы пытаетесь показать диалоговое окно в конструкторе самого скроллера, и, возможно, вы создаете экземпляр Scroller как поле. Переместить часть диалогового окна куда-нибудь еще

...