【发布时间】: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