首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > windows >

Windows8 Metro开发 (04) : 保留/读取本地应用程序设置

2012-11-26 
Windows8 Metro开发 (04) : 保存/读取本地应用程序设置Josè Mourinho的专栏 http://blog.csdn.net/zyc1370

Windows8 Metro开发 (04) : 保存/读取本地应用程序设置

Josè Mourinho的专栏 http://blog.csdn.net/zyc13701469860

转载请注明原作者和出处。
有些时候我们需要保存应用程序的设置,如用户的系统设定。在Android中,我们可以使用sharepreference。在Metro中我们该怎么做呢?
保存/读取基本类型数据
 Metro程序会把要保存的数据写入ApplicationData.Current.LocalSettings字典中,并保存在本地。程序在开始运行的时候会从本地初始化该字典。加载之前保存的数据。这样我们就可以方便的保存/读取基本类型数据了。我将其封装成了一个工具类。

默认显示的字体大小为24,我们将其字体改为28后返回到主页面,然后重新进入该页面。你会发现字体的大小变为28了。重新启动程序进入该页面,你会发现字体的大小仍然为28。下拉列表的选中项与字体大小是时刻对应的.Windows8 Metro开发 (04) : 保留/读取本地应用程序设置
实现方法如下:1.每次进入该页面的时候,首先获取之前保存的字体大小a.没有获取到将字体大小设为默认值b.获取到将字体大小设为获取的值2.用户改变字体大小时,保存改变后的值
private static ObservableCollection<Type> GetTypes()        {            //添加要序列化的类型            if (_Types == null)            {                _Types = new ObservableCollection<Type>();                _Types.Add(typeof(People));                _Types.Add(typeof(Student));                _Types.Add(typeof(Coder));            }            return _Types;        }
其中_Types是全局对象ObservableCollection<Type>。至此,数据就保存好了。
读取数据读取数据也就是进行反序列化,我们可以得到之前保存的对象集合,其数据类型是List<People>,然后我们将该对象集合交给ListView显示即可。
 public static async Task<object> XMLDeserialize(Type type)        {            StorageFolder folder = Windows.Storage.ApplicationData.Current.LocalFolder;            string fileName = "LocalDataPage-list_data.xml";            StorageFile newFile = await folder.GetFileAsync(fileName);            Stream newFileStream = await newFile.OpenStreamForReadAsync();            //进行反序列化            DataContractSerializer ser = new DataContractSerializer(type, GetTypes());            object instance = ser.ReadObject(newFileStream);            newFileStream.Dispose();            return instance;        }
可以看到读取的数据与之前保存的相同.我们的目的达到了。
程序运行的效果如下:1.随机显示学生和程序员信息:Windows8 Metro开发 (04) : 保留/读取本地应用程序设置2.保存数据保存文件的内容
<ArrayOfPeople xmlns="http://schemas.datacontract.org/2004/07/Win8_Study.Pages" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><People i:type="Student"><Age>14</Age><Name>学生1</Name><Score>66</Score></People><People i:type="Coder"><Age>24</Age><Name>程序员2</Name><WorkYears>4</WorkYears></People><People i:type="Student"><Age>7</Age><Name>学生3</Name><Score>86</Score></People><People i:type="Coder"><Age>23</Age><Name>程序员4</Name><WorkYears>1</WorkYears></People><People i:type="Coder"><Age>25</Age><Name>程序员5</Name><WorkYears>2</WorkYears></People></ArrayOfPeople>
3.清除数据并读取之前保存的数据显示效果同第一张图.

专栏网址:http://blog.csdn.net/zyc13701469860/article/details/8194090






热点排行