마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 sharedPreference [closed]

0 추천
public class settingActivity extends ActionBarActivity  {
  ToggleButton  btn5, btn6, btn7, btn8 ;
  TextView text3,  text5, text6, text7 ;
  Boolean tog1 = false ;
  Boolean tog2 = false ;
  Boolean tog3 = false ;
  SharedPreferences pref ;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.settingmain);

  final TextView text3 = (TextView) findViewById(R.id.text3);
  final ToggleButton  btn5 = (ToggleButton) findViewById(R.id.Button5);
  final ToggleButton  btn6 = (ToggleButton) findViewById(R.id.Button6);
  final ToggleButton  btn7 = (ToggleButton) findViewById(R.id.Button7);
  final ToggleButton  btn8 = (ToggleButton) findViewById(R.id.Button8);
  btn5.setChecked(pref.getBoolean("NameOfThingToSave", true));
  btn6.setChecked(pref.getBoolean("NameOfThingToSave", true));
  btn7.setChecked(pref.getBoolean("NameOfThingToSave", true));
  btn8.setChecked(pref.getBoolean("NameOfThingToSave", true));
  
     btn5.setOnClickListener(new OnClickListener(){
         public void onClick(View v){
        if(btn5.isChecked()){
            Toast.makeText(settingActivity.this,"3G/LTE 네트워크에 연결 후 자동으로 App 안전등급 및 정보를 업데이트 합니다. ",
            Toast.LENGTH_SHORT).show();
            btn5.setBackgroundColor(Color.rgb(53, 182, 44));
            btn5.setTextColor(Color.rgb(255, 255, 255));
         btn7.setVisibility(View.VISIBLE);
               text3.setTextColor(Color.rgb(0, 0, 0));
               SharedPreferences.Editor editor = getSharedPreferences("main", MODE_PRIVATE).edit();
               editor.putBoolean("NameOfThingToSav", true);
               editor.commit();
            }
            else {
            Toast.makeText(settingActivity.this,"3G/LTE 네트워크에 연결이 해지되었습니다. ",
               Toast.LENGTH_SHORT).show();
          btn7.setVisibility(View.INVISIBLE);
         text3.setTextColor(Color.rgb(166, 166, 166));
            btn5.setBackgroundColor(Color.rgb(212, 212, 212));
            btn5.setTextColor(Color.rgb(0, 0, 0));
            SharedPreferences.Editor editor = getSharedPreferences("main", MODE_PRIVATE).edit();
            editor.putBoolean("NameOfThingToSav", false);
            editor.commit();
     }
        if((!btn5.isChecked() && btn6.isChecked())
             || (btn5.isChecked() && !btn6.isChecked())){
               btn7.setVisibility(View.VISIBLE);
               text3.setTextColor(Color.rgb(0, 0, 0));
               SharedPreferences.Editor editor = getSharedPreferences("main", MODE_PRIVATE).edit();
               editor.putBoolean("NameOfThingToSav", true);
               editor.commit();
           } 
   
         }
     });


01-02 17:25:53.929: W/dalvikvm(23782):

 threadid=1: thread exiting with uncaught exception (group=0x415162a0)
01-02 17:25:53.934: E/AndroidRuntime(23782): 
FATAL EXCEPTION: main
01-02 17:25:53.934: E/AndroidRuntime(23782): 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.andro/com.andro.settingActivity}: java.lang.NullPointerException
01-02 17:25:53.934: E/AndroidRuntime(23782): 
 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
01-02 17:25:53.934: E/AndroidRuntime(23782): 
 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
01-02 17:25:53.934: E/AndroidRuntime(23782):  
at android.app.ActivityThread.access$600(ActivityThread.java:140)
01-02 17:25:53.934: E/AndroidRuntime(23782):  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
01-02 17:25:53.934: E/AndroidRuntime(23782):  
at android.os.Handler.dispatchMessage(Handler.java:99)
01-02 17:25:53.934: E/AndroidRuntime(23782): 
 at android.os.Looper.loop(Looper.java:137)
01-02 17:25:53.934: E/AndroidRuntime(23782): 
 at android.app.ActivityThread.main(ActivityThread.java:4898)
01-02 17:25:53.934: E/AndroidRuntime(23782): 
 at java.lang.reflect.Method.invokeNative(Native Method)
01-02 17:25:53.934: E/AndroidRuntime(23782):  
at java.lang.reflect.Method.invoke(Method.java:511)
01-02 17:25:53.934: E/AndroidRuntime(23782):  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
01-02 17:25:53.934: E/AndroidRuntime(23782): 
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
01-02 17:25:53.934: E/AndroidRuntime(23782): 
 at dalvik.system.NativeStart.main(Native Method)
01-02 17:25:53.934: E/AndroidRuntime(23782): 
Caused by: java.lang.NullPointerException
01-02 17:25:53.934: E/AndroidRuntime(23782):  
at com.andro.settingActivity.onCreate(settingActivity.java:46)
01-02 17:25:53.934: E/AndroidRuntime(23782):  
at android.app.Activity.performCreate(Activity.java:5206)
01-02 17:25:53.934: E/AndroidRuntime(23782): 
 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
01-02 17:25:53.934: E/AndroidRuntime(23782): 
 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
01-02 17:25:53.934: E/AndroidRuntime(23782):  ... 11 more
01-02 17:25:55.139: I/Process(23782): 
Sending signal. PID: 23782 SIG: 9

 

현재 창이 안열리고, 강제종료되네요.. 소스는 인터넷 뒤적이면서 맞춰 적긴했는데..

매니패스트하고, 소스가 맞나 확인 좀 부탁드릴게요..ㅜㅜ 그리고 충고하실 말씀있으시면..해주세요..

 

질문을 종료한 이유: 에러 해결완료^^
헬프미 (5,430 포인트) 님이 2015년 1월 2일 질문
헬프미님이 2015년 1월 2일 reshown

2개의 답변

+1 추천
 
채택된 답변

btn5.setChecked(pref.getBoolean("NameOfThingToSave", true));

요기서 pref을 초기값 설정안하고 사용해서 NULL이 되었네요..

nicehee (73,100 포인트) 님이 2015년 1월 2일 답변
헬프미님이 2015년 1월 2일 채택됨
btn5.setChecked(pref.getBoolean("NameOfThingToSave", true));
이 46번쨰줄이네요..
위 라인의 바로위에
pref = getSharedPreferences("main", MODE_PRIVATE);
해주시고 가져오셔야
저장이안되네요...ㅜㅜ
소스에 무슨 문제가있나요?..
액티비티를 닫고 다시 들어가면 저장이안되는데..토글버튼안에 텍스트가요.
+1 추천
일단 에러 뿜는 부분을 확인해보세요.
 
Caused by: java.lang.NullPointerException
01-02 17:25:53.934: E/AndroidRuntime(23782):  at com.andro.settingActivity.onCreate(settingActivity.java:46)
 
해당 액티비티의 46번째 줄에서 에러나오네요.
anci (19,950 포인트) 님이 2015년 1월 2일 답변
if((!btn5.isChecked() && btn6.isChecked()) 이부분인가요
btn5.setChecked(pref.getBoolean("NameOfThingToSave", true));
이부분이 46이네요..
...