将Android共享首选项值从String更改为Int

我正在更新我的 Android应用.该应用程序从我的服务器检索数据,其中数据是用户ID.用户id是一个数字(整数),但它从服务器作为字符串到达​​,例如“1234”.在旧版本中,我将此用户ID保存为我的共享偏好中的字符串,但现在我回头看它我不喜欢这个并且想要将它保存为整数应该是.

到目前为止很简单.我只使用putInt / getInt而不是putString / getString.问题是当前使用该应用程序的所有人都将其共享首选项中保存的值作为字符串,然后当他们更新应用程序时,新版本的应用程序将开始尝试使用getInt获取旧版本的值版本保存为字符串.

什么是避免任何错误的最佳方法,并确保两个应用程序版本之间的平滑过渡?

谢谢.

解决方法

在你的onCreate中有类似的东西:
try{
   prefs.getInt("key",0);
}catch (ClassCastException e){
   Integer uid = Integer.parseInt(prefs.getString("key",null);
   if(uid != null)
      prefs.edit().putInt("key",uid).commit();
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...