如何使用共享首选项编辑器保存

时间:2012-10-15 15:04:14

标签: android sharedpreferences android-image saving-data

我需要一些帮助。我是新的Android开发人员。我无法在共享首选项编辑器中保存图像。我想保存图片列表。

这是我的 Main.java

public class Main extends ListActivity {

    ArrayList<PersonalInfo> newList = null;
    private Button btnSave = null;

    private EditText txtName = null;
    private EditText txtMobile = null;
    private CustomListAdapter newAdpt = null;
    private int i = 0;
    private ImageView images;
    public static String filename = "MySharedString";
    SharedPreferences someData;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        someData = getSharedPreferences(filename, 0);
        newList = new ArrayList<PersonalInfo>();

        newAdpt = new CustomListAdapter(this, R.layout.list_item, newList);
        setListAdapter(this.newAdpt);

        txtName = (EditText) findViewById(R.id.txtName);
        txtMobile = (EditText) findViewById(R.id.txtMobile);
        images = (ImageView)findViewById(R.id.imageView1);

        btnSave = (Button) findViewById(R.id.btnSave);

        btnSave.setOnClickListener(new OnClickListener() {

            public void onClick(View arg0) {
                newList = new ArrayList<PersonalInfo>();
                PersonalInfo info = new PersonalInfo();
                String dataTxtName = txtName.getText().toString();
                String dataTxtMobile = txtMobile.getText().toString();
                int dataImage = images.getId();
                SharedPreferences.Editor editor = someData.edit();

                editor.putString("sharedStringName", dataTxtName);
                editor.putString("sharedStringMobile", dataTxtMobile);
                editor.putInt("sharedIntImage", dataImage);

                info.SetName(dataTxtName);
                info.SetMobile(dataTxtMobile);
                info.SetImage(dataImage);
                newList.add(info);


                if (newList != null && newList.size() > 0) {
                    newAdpt.notifyDataSetChanged();
                    newAdpt.add(newList.get(0));
                    i++;

                }

                newAdpt.notifyDataSetChanged();

            }

这是我的 PersonalInfo.java

public class PersonalInfo {
    private String name = "";
    private String mobile = "";
    private int image;

    public void SetName(String name) {
        this.name = name;
    }

    public String GetName() {
        return this.name;
    }

    public void SetMobile(String mobile) {
        this.mobile = mobile;
    }

    public String GetMobile() {
        return this.mobile;
    }

    public void SetImage(int dataImage) {
        this.image = dataImage;
    }

    public int GetImage() {
        return this.image;
    }

如何解决此问题?

2 个答案:

答案 0 :(得分:3)

完成修改editor.commit();后添加SharedPreferences

答案 1 :(得分:2)

每次对SharedPreferences进行任何更改时,都必须添加editor.commit()。