我需要一些幫助。我是新的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;
}
我怎樣才能解決這個問題?
你的照片是什麼,你有什麼嘗試? – njzk2
如果您嘗試在SharedPreferences中存儲對象,那麼這將不起作用。您只能將原始類型存儲在SharedPreferences中。 相反,您可以將圖像的路徑寫入SharedPreferences對象,然後將圖像作爲普通文件寫入SD卡。 如果因爲您要存儲PersonalInfo類,您需要將其設置爲可串行化,並將其寫入對象流到文件。 – Darwind
只在我的listrow中發送文本。圖像不會被髮送。 – user1303250