2013-12-09 3 views
0

내 코드 작업을 할 수 없습니다. 현재 밝기를 확인하고 자동 설정 인 경우 내 ToggleButton을 확인합니다. 내가 설명한다; 이것은 내가 밝기를 확인 할 노력하고있어 무엇 : 물론현재 밝기 확인 android

public static final int SCREEN_BRIGHTNESS_MODE_AUTOMATIC = 1; 
--- 
--- 


int curBrightnessValue = android.provider.Settings.System.getInt(getActivity().getContentResolver(), 
       android.provider.Settings.System.SCREEN_BRIGHTNESS,-1); 

     // 
     if (curBrightnessValue == 1){ 
      autoBrightToggle.setEnabled(true); 
     } else { 
      autoBrightToggle.setEnabled(false); 
     } 

는이 토글입니다 :

autoBrightToggle = (ToggleButton)v.findViewById(R.id.luminosita); 
     autoBrightToggle.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       if (autoBrightToggle.isChecked()) { 
        setAutoBrightness(true); 
       } else { 
        setAutoBrightness(false); 
       } 
      } 
     }); 
--- 
--- 
--- 
void setAutoBrightness(boolean value) { 
     if (value) { 
      Settings.System.putInt(getActivity().getContentResolver(), SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_AUTOMATIC); 
     } else { 
      Settings.System.putInt(getActivity().getContentResolver(), SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL); 
     } 
    } 

하지만 작동하지 않습니다. 그것은 다윗이 더 많은 정보를 제공 또는 null 값을 devicecontrolfragment.java에 onCreateView()를 확인하시기 바랍니다이 로그 캣

12-09 22:03:35.960: E/AndroidRuntime(15136): FATAL EXCEPTION: main 
12-09 22:03:35.960: E/AndroidRuntime(15136): Process: com.dd.androreboot, PID: 15136 
12-09 22:03:35.960: E/AndroidRuntime(15136): java.lang.NullPointerException 
12-09 22:03:35.960: E/AndroidRuntime(15136): at com.dd.androreboot.devicecontrolfragment.onCreateView(devicecontrolfragment.java:78) 
12-09 22:03:35.960: E/AndroidRuntime(15136): at android.app.Fragment.performCreateView(Fragment.java:1700) 
12-09 22:03:35.960: E/AndroidRuntime(15136): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890) 
12-09 22:03:35.960: E/AndroidRuntime(15136): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062) 
12-09 22:03:35.960: E/AndroidRuntime(15136): at android.app.BackStackRecord.run(BackStackRecord.java:684) 
12-09 22:03:35.960: E/AndroidRuntime(15136): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447) 
12-09 22:03:35.960: E/AndroidRuntime(15136): at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443) 
12-09 22:03:35.960: E/AndroidRuntime(15136): at android.os.Handler.handleCallback(Handler.java:733) 
12-09 22:03:35.960: E/AndroidRuntime(15136): at android.os.Handler.dispatchMessage(Handler.java:95) 
12-09 22:03:35.960: E/AndroidRuntime(15136): at android.os.Looper.loop(Looper.java:136) 
12-09 22:03:35.960: E/AndroidRuntime(15136): at android.app.ActivityThread.main(ActivityThread.java:5017) 
12-09 22:03:35.960: E/AndroidRuntime(15136): at java.lang.reflect.Method.invokeNative(Native Method) 
12-09 22:03:35.960: E/AndroidRuntime(15136): at java.lang.reflect.Method.invoke(Method.java:515) 
12-09 22:03:35.960: E/AndroidRuntime(15136): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
12-09 22:03:35.960: E/AndroidRuntime(15136): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
12-09 22:03:35.960: E/AndroidRuntime(15136): at dalvik.system.NativeStart.main(Native Method) 
+0

devicecontrolfragment.java의 78 줄은 무엇입니까? – JoelFernandes

+0

this : autoBrightToggle.setEnabled (false); –

+0

이 경우 autoBrightToggle이 null임을 의미합니다. 하지만 당신은 이미 그것을 알고 있습니다. 당신은 아마 이미 luminosita가'v'의 계층 구조에 존재하는지 확인했을 것입니다. v는 아마 xml 레이아웃에서옵니다. – njzk2

답변

0

와 충돌, 그 여기에 문제를 일으키는 것입니다. (devicecontrolfragment.java : line 78) 참고로이 작업에 대한 관련 권한이 있는지 확인하십시오.

+0

권한이 괜찮습니다. 78 행은 다음과 같습니다 :'autoBrightToggle.setEnabled (false);'.. 잘 모름 –

+0

어떤 해결책을 제공해 주시겠습니까? –

+0

나는 다음을 생각한다. 시스템을 변경하기 전에 UI가 올바르게 작동하는지 확인한다. 시스템 메소드 호출에 주석을 달고 UI 실수를하지 않았 음을 확인하십시오. 그런 다음 코드에서 기대하는대로 시스템에서 필요한 정보를 얻을 수 있는지 (로그 등으로) 확인하십시오. – mDroid