2014-02-01 2 views
0

Я пытаюсь сохранить флажки, используя общие настройки. Однако ... выбираются случайные флажки. Пожалуйста, помогите мне отладки кода ... в основном три checkboxese созданы, но им не в состоянии спасти их ...сохранение состояния флажков в android

package com.isit.finale; 



import android.app.Activity; 
import android.content.SharedPreferences; 
import android.content.SharedPreferences.Editor; 
import android.os.Bundle; 
import android.preference.PreferenceManager; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.CheckBox; 
import android.widget.EditText; 
import android.view.Menu; 

public class History extends Activity implements OnClickListener { 

    CheckBox c1; 
    CheckBox c2; 
    CheckBox c3; 
    Button b1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.history); 
    c1 = (CheckBox) findViewById(R.id.checkBox1); 
    c2 = (CheckBox) findViewById(R.id.checkBox2); 
    c3 = (CheckBox) findViewById(R.id.checkBox3); 
     b1 = (Button) findViewById(R.id.button1); 
     b1.setOnClickListener(this); 
     loadSavedPreferences(); 
     } 



    private void loadSavedPreferences() { 
     // TODO Auto-generated method stub 
     SharedPreferences sharedPreferences= PreferenceManager.getDefaultSharedPreferences(this); 
    boolean c1Val= sharedPreferences.getBoolean("CheckBox_Value", false); 
    boolean c2Val= sharedPreferences.getBoolean("CheckBox_Value", false); 
    boolean c3Val= sharedPreferences.getBoolean("CheckBox_Value", false); 

      if (c1Val) 
      {c1.setChecked(true); 
        } 
      else{ 
       {c1.setChecked(false); 
        } 
      }; 

      if(c2Val){ 
       c2.setChecked(true); 
       } 
      else{ c2.setChecked(false); 
      }; 

      if (c3Val){ 
       c3.setChecked(true); 
      } 
      else{ c3.setChecked(false); 
      } 

    } 


private void savePreferences(String key, boolean value){ 
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 

    } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
      if(c1.isChecked()) 
       savePreferences("CheckBox_Value",c1.isChecked());   if(c2.isChecked()) 
savePreferences("CheckBox_Value",c2.isChecked()   if(c3.isChecked()) 
savePreferences("CheckBox_Value",c3.isChecked()); 
finish(); 
    } 
}` 

ответ

4

Вы не сохранили Флажки предпочтения.

private void savePreferences(String key, boolean value){ 
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putBoolean(key, value); 
    editor.commit(); 
    } 

И не забудьте добавить уникальный ключ для каждого один Флажки предпочтений

  • CheckBox_Value1
  • CheckBox_Value2
  • CheckBox_Value3

и получить правильный ключ при загрузке их.

1

вместо того же ключа для каждого чекбокса, вы должны сделать уникальный ключ для каждого ..

  • checkBox_value_1
  • checkBox_value_2
Смежные вопросы