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

안드로이드 SharedPreference 기능

0 추천



현재 버튼이 체크될때마다 버튼의 상태를 불러와 editor변수에 버튼의 상태를 저장하도록 했는데요.
소스가 먹히질 않고.. 어플이 자꾸 강제 종료되네요...
왜이런거죠..? 어느부분이 잘못됬나요..

 

 

헬프미 (5,430 포인트) 님이 2014년 12월 31일 질문
헬프미님이 2015년 1월 2일 수정
강제 종료시에 나오는 로그를 읽어서 의미를 분석해보세요.
그중에 이해가 안되는 부분을 올리는 것도 좋은 질문법입니다

1개의 답변

0 추천
 
채택된 답변

프로그램 해독성, 유지보수 등을 위해서 수정 했습니다. 양해하시구요.... 업무를 몰라서 되는대로 했습니다. 참고하세여...

ArrayAdapter<CharSequence> adSpin;
 
 ToggleButton  btn5, btn6, btn7, btn8 ;
 TextView text3,  text5, text6, text7, text8 ;
 Boolean tog1 = false ;
 Boolean tog2 = false ;
 Boolean tog3 = false ;
   SharedPreferences pref ;
   SharedPreferences.Editor editor ;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
       
 btn5 = (ToggleButton) findViewById(R.id.btn5);
 btn6 = (ToggleButton) findViewById(R.id.btn6);
 btn7 = (ToggleButton) findViewById(R.id.btn7);
 btn8 = (ToggleButton) findViewById(R.id.btn8);
 
 text3 = (TextView) findViewById(R.id.text3);
 text5 = (TextView) findViewById(R.id.text5);
 text6 = (TextView) findViewById(R.id.text6);
 text7 = (TextView) findViewById(R.id.text7);
 
 pref = getSharedPreferences("pref", MODE_PRIVATE);
 editor = pref.edit();
 
 btn5.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
     doClcik_btn5_6(isChecked) ;
}
 });
 
 btn6.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
     doClcik_btn5_6(isChecked) ;
}
 });
 }
 
 // 버튼 5와 6의 값이 변경 됨으로 함수로
 private void doClcik_btn5_6(boolean checked) {
     if(checked){
            Toast.makeText(MainActivity.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));
            tog1 = pref.getBoolean("Button5", false);
            tog3 = pref.getBoolean("Button7", false);
        } else {
            Toast.makeText(MainActivity.this,"3G/LTE 네트워크에 연결이 해지되었습니다. ",Toast.LENGTH_SHORT).show();
            
            btn5.setBackgroundColor(Color.rgb(212, 212, 212));
            btn5.setTextColor(Color.rgb(0, 0, 0));
            btn7.setVisibility(View.INVISIBLE);
            
            text3.setTextColor(Color.rgb(166, 166, 166));
            tog1 = pref.getBoolean("Button5", false);
            tog3 = pref.getBoolean("Button7", false);
             
            /*
            btn5.setChecked(tog1);
            btn7.setChecked(tog3);
            editor.putBoolean("Button5", btn5.isChecked());
            editor.putBoolean("Button7", btn7.isChecked());
            editor.commit();
            */
     }
          // btn5.setChecked(tog1); // 클릭하면 상태값을 가지고 있어야 알 수 ?????? 업무를 몰라서
   
          btn7.setChecked(tog3);
          editor.putBoolean("Button5", btn5.isChecked());
          editor.putBoolean("Button7", btn7.isChecked());
          editor.commit();
 
      if((!btn5.isChecked() && btn6.isChecked()) || (btn5.isChecked() && !btn6.isChecked())){
             btn7.setVisibility(View.VISIBLE);
             text3.setTextColor(Color.rgb(0, 0, 0));
             
             tog1 = pref.getBoolean("Button5", false);
             tog2 = pref.getBoolean("Button6", false);
             tog3 = pref.getBoolean("Button7", false);
           
             //btn5.setChecked(tog1); // 클릭하면 상태값을 가지고 있어야 알 수 ?????? 업무를 몰라서
             //btn6.setChecked(tog2); // 클릭하면 상태값을 가지고 있어야 알 수 ?????? 업무를 몰라서
             btn7.setChecked(tog3);
             
             editor.putBoolean("Button5", btn5.isChecked());
             editor.putBoolean("Button6", btn6.isChecked());
             editor.putBoolean("Button7", btn7.isChecked());
             
             editor.commit();
         }
}
behappy007 님이 2015년 1월 2일 답변
헬프미님이 2015년 1월 3일 채택됨
...