【问题标题】:How to save using shared preference editor如何使用共享首选项编辑器进行保存
【发布时间】:2012-10-15 15:04:14
【问题描述】:

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

这是我的 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;
    }

我该如何解决这个问题?

【问题讨论】:

  • 你的图片是什么,你尝试过什么?
  • 如果你试图在 SharedPreferences 中存储一个对象,那是行不通的。您只能在 SharedPreferences 中存储原始类型。相反,您可以例如将图像的路径写入 SharedPreferences 对象,然后将图像作为普通文件写入 SD 卡。如果是因为您尝试存储 PersonalInfo 类,则需要使其可序列化并将其写入文件的对象流。
  • 只在我的列表行中发送文本。图片未发送。
  • 你有任何教程或例子吗?感谢您的建议。
  • 这是基本的 Java 序列化,因此可以使用:tutorialspoint.com/java/java_serialization.htm 您需要将对象序列化到例如 SD 卡。看看这个:developer.android.com/guide/topics/data/…

标签: android sharedpreferences android-image saving-data


【解决方案1】:

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

【解决方案2】:

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

【讨论】:

  • 只在我的列表行中发送文本。图片未发送。
猜你喜欢
  • 2011-06-25
  • 1970-01-01
  • 1970-01-01
  • 2013-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多