如何将复选框项目保存到SharedPreferences?

时间:2015-11-24 14:42:29

标签: android

我需要将复选框中的值保存到共享首选项,这样即使退出后,仍会选中复选框。有谁能告诉我如何解决这个问题?

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 个答案:

答案 0 :(得分: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");