2013-12-20 2 views
0

Пользователь сказал мне, что он не может открыть фрагмент в моем приложении, потому что он попал в аварию. У меня есть LogCat:Андроид вскрывает фрагмент

java.lang.NullPointerException 
at com.dd.androreboot.devicecontrolfragment.onCreateView(devicecontrolfragment.java:162) 
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:829) 
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035) 
at android.app.BackStackRecord.run(BackStackRecord.java:635) 
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1399) 
at android.app.FragmentManagerImpl$1.run(FragmentManager.java:426) 
at android.os.Handler.handleCallback(Handler.java:615) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4921) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
at dalvik.system.NativeStart.main(Native Method) 

в строке 162 у меня есть этот код:

ConnectivityManager connManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo mobile = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
     datatoggle = (ToggleButton)v.findViewById(R.id.datatoggle); 
     datatoggle.setChecked(mobile.isConnectedOrConnecting()); //line 162 

Эта часть кода необходимо проверить, если 3g подключен, и если да, то состояние кнопки переключения становятся реальностью , Он работает в каждом устройстве, которое я пытался, но не в этом: Galaxy Note 10.1 (p4notewifi). Любая помощь?

+0

Можете ли вы опубликовать весь метод onCreateView? – Gooziec

+1

Не 'мобильный' нуль? Если 3G нет, этот экземпляр может быть нулевым. Или 'dataToggle' может быть неправильно инициализирован. – gunar

+0

Можете ли вы показать еще какой-нибудь код вашего класса фрагментов? – GrIsHu

ответ

5

попробовать это:

ConnectivityManager connManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo mobile = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
    datatoggle = (ToggleButton)v.findViewById(R.id.datatoggle); 


    if(mobile != null) { 
    datatoggle.setChecked(mobile.isConnectedOrConnecting()); //line 162 
    } else { 
     datatoggle.setChecked(false); //line 162 
    } 
+0

Aaaaaaaah так таким образом, если устройство не имеет модуля 3g, не сработает правильно? Я не считал, что у устройства нет 3g !! –

+0

Объект NetworkInfo для текущей сети по умолчанию или null, если сеть сети по умолчанию не активна. – Kristopher

4

getNetworkInfo() может вернуться null. Перед вызовом метода на нем проверьте непустую.

Specifically,

Возвращает

NetworkInfo объект для запрошенного типа сети или null, если тип не поддерживается устройством.

+0

спасибо, я решил :) –

Смежные вопросы