上一篇文章是写2.2之前的SharedPreferences存储对象和图片的使用方法。

本篇文章简单说下2.2之后的使用方法。

由于android SDK2.2提供Base64编码和解码库,所以我们不需要引包。

http://developer.android.com/reference/android/util/Base64.html可以参考官方资料

特别提醒:存储的类不能为activity的内部类,测试过了

以下是在OnStop函数中存储Product对象的代码

protected void onStop() {
try {

Product product = new Product();
product.id = etProductID.getText().toString();
product.name = etProductName.getText().toString();
product.price = Float.parseFloat(etProductPrice.getText()
.toString());
ByteArrayOutputStream baos = new ByteArrayOutputStream();

ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(product);
mySharedPreferences = getSharedPreferences("base64",
Activity.MODE_PRIVATE);
String productBase64 = new String(
Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT));

SharedPreferences.Editor editor = mySharedPreferences.edit();
editor.putString("product", productBase64);


editor.commit();
oos.close();


} catch (Exception e) {
setTitle("error:" + e.getMessage());
}
super.onStop();
}

下面是读取product对象并写数据的代码段

public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
etProductID = (EditText) findViewById(R.id.etProductID);
etProductName = (EditText) findViewById(R.id.etProductName);
etProductPrice = (EditText) findViewById(R.id.etProductPrice);

byte[] base64Bytes;
ByteArrayInputStream bais;
try
{

mySharedPreferences = getSharedPreferences("base64",
Activity.MODE_PRIVATE);

String productBase64 = mySharedPreferences.getString("product", "");

base64Bytes = Base64.decode(productBase64, Base64.DEFAULT);

bais = new ByteArrayInputStream(base64Bytes);
ObjectInputStream ois = new ObjectInputStream(bais);

Product product = (Product) ois.readObject();
etProductID.setText(product.id);
etProductName.setText(product.name);
etProductPrice.setText(String.valueOf(product.price));

ois.close();

}
catch (Exception e)
{
e.printStackTrace();
}

}

更多相关文章

  1. Android中对媒体的使用
  2. Android中数据存储——SharedPreferences存储数据
  3. Android(安卓)Handler机制 - handleMessage究竟在哪个线程执行
  4. Android(安卓)性能优化之内存泄漏检测以及内存优化(中)
  5. android 上 webkit js 扩展之全局本地对象实现步骤
  6. android 常用控件的使用 TextView EditTextView
  7. 进击的Android注入术《五》
  8. Android(安卓)Drawable
  9. Android学习路线总结,绝对干货

随机推荐

  1. Unity3D直接从Zip中读取文本数据
  2. K8S进阶实践 之 Helm管理业务应用
  3. mysql常用单词
  4. “蚂蚁呀嘿” 刷屏的背后:算法工程师带你
  5. MySQL系列-DML语句之select单表查询
  6. 如何在iPhone上使用“滑动键入”?
  7. SQL基础知识V2——SELECT
  8. phpdav-1.1使用教程
  9. 2021华为认证报名须知,Pearson VUE考试中
  10. 关于一个NBA球队连续夺冠的SQL查询问题,解