Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将复选框项保存到SharedReferences?_Android - Fatal编程技术网

Android 如何将复选框项保存到SharedReferences?

Android 如何将复选框项保存到SharedReferences?,android,Android,我需要将复选框中的值保存到共享首选项,以便即使退出后,复选框仍处于选中状态。有人能告诉我如何解决这个问题吗 public class MainActivity extends Activity implements AdapterView.OnItemClickListener { ListView listView; ArrayAdapter<Model> adapter; List<Model> list = new ArrayList<

我需要将复选框中的值保存到共享首选项,以便即使退出后,复选框仍处于选中状态。有人能告诉我如何解决这个问题吗

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;
    }
}
公共类MainActivity扩展活动实现AdapterView.OnItemClickListener{
列表视图列表视图;
阵列适配器;
列表=新的ArrayList();
创建公共空间(捆绑冰柱){
超级冰柱;
setContentView(R.layout.activity_main);
listView=(listView)findViewById(R.id.my_列表);
adapter=newmyadapter(这个,getModel());
listView.setChoiceMode(listView.CHOICE\u MODE\u MULTIPLE);
setAdapter(适配器);
setOnItemClickListener(this);
}
@凌驾
public void onItemClick(AdapterView arg0,视图v,内部位置,长arg3){
TextView标签=(TextView)v.getTag(R.id.label);
CheckBox=(CheckBox)v.getTag(R.id.check);
Toast.makeText(v.getContext(),label.getText().toString()+“”+isCheckedOrNot(复选框),Toast.LENGTH_LONG.show();
}
私有字符串isCheckedOrNot(复选框){
如果(checkbox.isChecked())
返回“已检查”;
其他的
返回“未选中”;
}
私有列表getModel(){
列表。添加(新型号(“1”);
列表。添加(新型号(“2”);
列表。添加(新型号(“3”);
退货清单;
}
}

我制作了这个类,使用它:

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");

我在哪里放置
savePreferencesData的可能重复项(视图,“CheckBox1”,“true”)?在您的活动中,您将在何处更新SharedReferences,请记住调用一流的SavePreferences。