package com.example.StringToListDemo;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import java.io.*;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/*ArrayList<String> mm = new ArrayList<String>();
mm.add("1+");
mm.add("2+");
mm.add("3 + ");
String ret = StringUtil.stringWithObject(mm);
Log.d("StringTo***********",ret);
ArrayList<String> newss = (ArrayList<String>) StringUtil.objectWithString(ret);
StringBuilder sb = new StringBuilder();
for (int i = 0;i<newss.size();i++){
sb.append(newss.get(i) + "#");
}
String ss = sb.toString();
Log.d("StringTo***********",ss);*/
ArrayList<Map<String, String>> maps = new ArrayList<Map<String, String>>();
for (int i = 0; i < 4; i++) {
Map<String, String> map = new HashMap<String, String>();
map.put("name", "zhang" + i);
map.put("image", "woodeeee");
map.put("id", i + "");
maps.add(map);
}
String s = stringWithObject(maps);
Log.d("StringTo***********", s);
ArrayList<Map<String, String>> newData = (ArrayList<Map<String, String>>) objectWithString(s);
String newS = newData.toString();
Log.d("StringTo***********", newS);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < newData.size(); i++) {
sb.append(newData.get(i).get("name")).append(newData.get(i).get("id"));
}
String ss = sb.toString();
Log.d("StringTo***********", ss);
}
/**
* object to string
* @param object
* @return
*/
public String stringWithObject(Object object) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos;
try {
oos = new ObjectOutputStream(baos);
oos.writeObject(object);
String value = baos.toString("ISO-8859-1");
String encodedValue = URLEncoder.encode(value, "UTF-8");
return encodedValue;
} catch (IOException e) {
// Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* string to object
* @param value
* @return
*/
public Object objectWithString(String value) {
if (StringUtil.isEmpty(value)) return null;
try {
String decoderValue = URLDecoder.decode(value, "UTF-8");
ByteArrayInputStream bais = new ByteArrayInputStream(
decoderValue.getBytes("ISO-8859-1"));
ObjectInputStream ios = new ObjectInputStream(bais);
return ios.readObject();
} catch (UnsupportedEncodingException e1) {
// Auto-generated catch block
e1.printStackTrace();
} catch (StreamCorruptedException e) {
// Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
SharePreference里面存一个arraylist,List里面可以放基本类型,还可以放Map集合。