2015-11-24 30 views
0

我需要将复选框中的值保存到共享首选项,以便即使在退出后仍会检查已选中的框。任何人都可以请告诉我如何解决这个问题?如何将复选框项目保存到SharedPreferences?

public class MainActivity extends Activity implements AdapterView.OnItemClickListener { 

    ListView listView; 
    ArrayAdapter<Model> adapter; 
    List<Model> list = new ArrayList<Model>(); 

    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.activity_main); 

     listView = (ListView) findViewById(R.id.my_list); 
     adapter = new MyAdapter(this,getModel()); 
     listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
     listView.setAdapter(adapter); 
     listView.setOnItemClickListener(this); 
    } 

    @Override 
    public void onItemClick(AdapterView<?> arg0, View v, int position, long arg3) { 
     TextView label = (TextView) v.getTag(R.id.label); 
     CheckBox checkbox = (CheckBox) v.getTag(R.id.check); 
     Toast.makeText(v.getContext(), label.getText().toString() + " " + isCheckedOrNot(checkbox), Toast.LENGTH_LONG).show(); 
    } 

    private String isCheckedOrNot(CheckBox checkbox) { 
     if(checkbox.isChecked()) 
      return "is checked"; 
     else 
      return "is not checked"; 
    } 

    private List<Model> getModel() { 
     list.add(new Model("1")); 
     list.add(new Model("2")); 
     list.add(new Model("3")); 


     return list; 
    } 
} 
+1

的可能的复制[如何使用SharedPreferences在Android的存储,读取和编辑值( http://stackoverflow.com/questions/3624280/how-to-use-sharedpreferences-in-android-to-store-fetch-and-edit-values) –

回答

0

我做了这个类,使用它:

public class SavePreferences { 
private final static String MYAPP_PREFERENCES = "MyAppPreferences"; 


public void savePreferencesData(View view, String KEY, String TEXT) { 
     SharedPreferences prefs = view.getContext().getSharedPreferences(MYAPP_PREFERENCES, Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor = prefs.edit(); 
     if (TEXT != null && KEY != null) { 
      editor.putString(KEY, TEXT); 
      editor.commit(); 
     } 
    } 

private String loadPreferencesData(View view, String KEY){ 
     SharedPreferences prefs = view.getContext().getSharedPreferences(MYAPP_PREFERENCES, Context.MODE_PRIVATE); 
     String data = prefs.getString(KEY, "No Data!"); 
     return data; 
    } 
} 

然后:

savePreferencesData(View, "CheckBox1", "true"); 
+0

我在哪里放'savePreferencesData(View,“CheckBox1”, “真”);'? – GabEA

+0

在您的活动中,您将在哪里更新SharedPreferences,请记住调用第一个类SavePreferences。 –

相关问题