Windows 8 应用开发 - 本地数据存储

原文:Windows 8 应用开发 - 本地数据存储

     在应用中通常会遇到用户主动或被动存储信息的情况,当应用关闭后这些数据仍然会存储在本地设备上,用户下次重新激活应用时会自动加载这些数据。下面将通过一个小实例演示如何把用户数据存储到本地,首先在Windows 8 应用中创建两个输入框:姓名、年龄。

<StackPanel Grid.Row="1" Margin="120,30,0,0">
    <StackPanel Orientation="Horizontal" Margin="0,20,0,20">
        <TextBlock Text="Name: " Style="{StaticResource BasicTextStyle}" Width="50"/>
        <TextBox x:Name="nameInput" Width="200"/>
    </StackPanel>
    <StackPanel Orientation="Horizontal" Margin="0,20,0,20">
        <TextBlock Text="Age: " Style="{StaticResource BasicTextStyle}" Width="50"/>
        <TextBox x:Name="ageInput" Width="200"/>
    </StackPanel>
    <StackPanel Orientation="Horizontal" Margin="0,20,0,20">
        <Button Content="Save" Click="Save_Button_Click"/>
        <Button Content="Reset" Click="Reset_Button_Click"/>
    </StackPanel>
</StackPanel>

      打开MainPage .xaml.cs 为了使用数据存储API,先添加using Windows.Storage 命名空间。在MainPage中使用ApplicationData.LocalSettings属性获取到应用设置本地存储空间。

ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;

接下来在Save_Button_Click 事件中为localSettings 设置两个数值分别存储Name 和Age 数据。

private void Save_Button_Click(object sender, RoutedEventArgs e)
{
    localSettings.Values["name"] = nameInput.Text;
    localSettings.Values["age"] = ageInput.Text;
}

     下面要做的就是在应用激活时将已经保存在本地的数据加载进来,在MainPage .xaml.cs 程序中已经有一个LoadState 方法用来加载应用数据或状态,我们可以在这里完成数据的加载工作。

protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{

    if (localSettings.Values.ContainsKey("name"))
    {
        nameInput.Text = localSettings.Values["name"].ToString();
    }

    if (localSettings.Values.ContainsKey("age"))
    {
        ageInput.Text = localSettings.Values["age"].ToString();
    }
}

     本地数据存储用于保存例如应用设置相关的重要信息,当然这些数据是留存本地设备中的,如果这些数据不再使用时也可以进行消除操作。如下代码就是将之前的姓名和年龄信息进行删除,数据删除后重新激活应用将无法加载。

private void Reset_Button_Click(object sender, RoutedEventArgs e)
{
    localSettings.Values.Remove("name");
    localSettings.Values.Remove("age");
    nameInput.Text = "";
    ageInput.Text = "";
}

源码下载

http://sdrv.ms/RxauDH

时间: 2024-10-06 19:37:08

Windows 8 应用开发 - 本地数据存储的相关文章

Android本地数据存储: ASimpleCache

一:前言 在上一篇博客Android本地数据存储: Reservoir 博客中,我提到,除了Reservoir库,还可以采用ASimpleCache开源库,来实现本地数据存储.昨天并没有仔细的对比Reservoir和ASimpleCache有啥不同,而是直接选取了Reservoir来进行学习使用,今天休息,真好看下ASimpleCache是如何使用的,有啥特别之处. come on with me,let's study together. 二:认知ASimpleCache ASimpleCac

Android本地数据存储: Reservoir

一:前言 今天做项目,准备使用本地存储,把一些数据存在本地磁盘上,比如用户名.密码这样的.其实大家都知道,这种情况最常用的就是SharedPreferences了,我也不例外,脑子里第一个想到的就是用这个...后来转念一想,有没有啥开源的轻量级的库,可以更好的帮我完成这件事呢,于是求助了度娘,果不其然,被我找到了两个库,Reservoir和ASimpleCache. 原谅我没有过多的去比较这两个库,直接采用了Reservoir,去实现本地数据存储. 啥是Reservoir呢? 官方说,Reser

iOS开发之数据存储之SQLite3(包括FMDB)

1.概述 SQLite3是一款开源的嵌入式关系型数据库,可移植性好.易使用.内存开销小. SQLite3是无类型的,意味着你可以保存任何类型的数据到任意表的任意字段中.比如下列的创表语句是合法的: create table t_person(name, age); 为了保证可读性,建议还是把字段类型加上: create table t_person(name text, age integer); SQLite将数据划分为以下几种存储类型: integer : 整型值 real : 浮点值 te

美硅谷公司开发出数据存储新技术

美国硅谷一家公司宣布开发出一种新技术,并计划利用它来制造比闪存容量更大.读写速度更快的新型存储器. 这家名为"统一半导体"的公司发布新闻公报说,新型存储器的单位存储密度有望达到现有NAND型闪存芯片的4倍,存储数据的速度有可能达到后者的5倍到10倍. NAND型闪存因为存储容量大等特点,目前在数码产品中应用比较广泛.但也有一些专家认为,NAND型闪存未来可能遭遇物理极限,容量将无法再进一步提高."统一半导体"表示,其制造的新型存储器旨在充当闪存的替代品和"

iOS开发之数据存储之XML属性列表(plist)归档

1.概述 "归档"意思是持久化存储数据.plist文件是一种XML格式的文件,拓展名为plist.如果对象是NSString.NSDictionary.NSArray.NSData.NSNumber等类型,就可以使用writeToFile:atomically:方法直接将对象写到属性列表文件(plist文件)中.特别注意的是plist文件不能存储对象. IOS常用文件存储方式有: XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(N

iOS开发之数据存储之NSData

1.概述 使用archiveRootObject:toFile:方法可以将一个对象直接写入到一个文件中,但有时候可能想将多个对象写入到同一个文件中,那么就要使用NSData来进行归档对象. NSData可以为一些数据提供临时存储空间,以便随后写入文件,或者存放从磁盘读取的文件内容.可以使用[NSMutableData data]创建可变数据空间. 2.归档2个Person对象到同一文件中 归档(编码): // 新建一块可变数据区 NSMutableData *data = [NSMutableD

iOS开发之数据存储之Preference(偏好设置)

1.概述 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能. 每个应用都有个NSUserDefaults实例,通过它来存取偏好设置.比如,保存用户名.字体大小.是否自动登录. NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults  setObject:@"itcast"  forKey:@"username

iOS开发之数据存储之NSKeyedArchiver

1.概述 NSKeyedArchiver归档和plist文件存储不同的是NSKeyedArchiver可以直接保存对象.如果对象是NSString.NSDictionary.NSArray.NSData.NSNumber等类型,可以直接用NSKeyedArchiver进行归档和恢复.不是所有的对象都可以直接用这种方法进行归档,只有遵守了NSCoding协议的对象才可以被存储. NSCoding协议中的2个方法: (1)encodeWithCoder: 存对象时该方法必须实现,每次归档对象时,都会

Android开发中将数据存储到文件实例

第一步,改写AndroidManifest.xml,给手机的Scard卡授权 <!--添加Scard卡读写授权 -->    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 然后加单元测试instrumentation  <instrumentation        android:name="android.test.Instrument