[Xamarin] 透過 IsolatedStorageFile儲存資料(转帖)
開發手機App通常都會遇到想要儲存資料的,舉個例來說,像是
![]()
(圖片來源:http://docs.xamarin.com/guides/android/application_fundamentals/activity_lifecycle)
在android 生命週期中,OnReusme 可能需要把上次狀態讀取出來,在OnStop中因為App被中斷,所以必須把現在狀態寫起來
以方便還原,這時候就會用到這儲存的機制..

他直接連結到MSDN-Isolated Storage Overview for Windows Phone 那不就等於方便到爆炸,直接拿Windows Phone 的Code就可以用了..
來介紹一下今天範例..
![]()
按下儲存資料(btnSave1)的時候,就將EditView(editTextMain)資料寫入,
按下讀取資料(btnRead1)時就會將寫入的資料讀取出來,因為是範例,所以盡量單純點..直接來看Code
儲存資料:
var btnSave1 = FindViewById<Button>(Resource.Id.btnSave1);
btnSave1.Click += delegate
{
IsolatedStorageFile storageFiles = IsolatedStorageFile.GetUserStoreForApplication();
//如果判斷已經有檔案就把它砍掉
if (storageFiles.FileExists("UserInfo/data.txt"))
{
storageFiles.DeleteFile("UserInfo/data.txt");
}
//建立檔案夾
storageFiles.CreateDirectory("UserInfo");
StreamWriter fileWriter = new StreamWriter(new IsolatedStorageFileStream("UserInfo/data.txt", FileMode.OpenOrCreate, storageFiles));
//寫入至目標
fileWriter.Write(editTextMain.Text);
fileWriter.Close();
storageFiles.Dispose();
Toast.MakeText(this, "Success Save", ToastLength.Short).Show();
};
讀取資料:
var btnRead1 = FindViewById<Button>(Resource.Id.btnRead1);
btnRead1.Click += delegate
{
IsolatedStorageFile storageFiles = IsolatedStorageFile.GetUserStoreForApplication();
StreamReader fileReader = null;
//判斷檔案是否存在
if (storageFiles.FileExists("UserInfo/data.txt"))
{
try
{
fileReader = new StreamReader(new IsolatedStorageFileStream("UserInfo/data.txt", FileMode.Open, storageFiles));
var result = fileReader.ReadToEnd();
Toast.MakeText(this, result, ToastLength.Long).Show();
fileReader.Close();
}
catch(Exception ex)
{
Toast.MakeText(this, "Error:"+ex.Message, ToastLength.Long).Show();
}
}
else
{
Toast.MakeText(this, "Error:" + "Sorry我找不到檔案喔!", ToastLength.Long).Show();
}
};
結果:![]()
![]()
是不是整個跟在Windows Phone 上面開發經驗一致..真的是很溫馨..
[Xamarin] 透過 IsolatedStorageFile儲存資料(转帖)的更多相关文章
- [Xamarin.Android] 儲存資料於Windows Azure (转帖)
在準備討論Xamarin.Android 如何整合GCM與Windows Azure來實作Push Notification之前, 先來了解如何將Xamarin.Android 與Windows Az ...
- [C#] 與Android共舞–透過GET方式傳資料給Server(含解決中文編碼問題) (转帖)
上一篇文章分享了透過POST 方式傳資料回Server,這一篇來談談有關於透過GET的方式傳遞 首先,如我預期的一樣,透過網址傳遞,會產生編碼問題,這邊我就順代解掉,希望有碰到的人 可以不用為此煩惱. ...
- [Xamarin] 透過WebClient跟網路取得資料 (转帖)
之前寫過一篇文章,關於在Android上面取得資料 透過GET方式傳資料給Server(含解決中文編碼問題) 我們來回顧一下 Android 端的Code: 有沒有超多,如果是在Xaramin下面,真 ...
- [Xamarin] 開啟另外一個Activity 並且帶資料 (转帖)
每隻App是透過許多畫面所組成的,當然可能主畫面之外,都會有許多其他的頁面 再Android 設計中畫面會有配合的Activity 當然在這之前,最好事先了解一下,Android 關於生命週期的規劃 ...
- [Xamarin] 透過 intent-filter 來接管 http ,製作偽瀏覽器 (转帖)
使用Android 的朋友一定對這畫面不陌生在開啟網址的時候,或是Youtube連結的時候,因為Android 發現,你手機安裝的App有哪些可以支援這些東西的瀏覽 所以,就可以使用甚麼東西來進行開啟 ...
- [Xamarin] 透過StartActivityForResult傳值回來(转贴)
上一篇文章(開啟另外一個Activity 並且帶資料),提到了開啟一個新的Activity ,我們將值透過intent 帶到下個Activity 但是,如果我們開啟的Actrivity其實是有一個任務 ...
- [Xamarin] 透過Native Code呼叫 JavaScript function (转帖)
今天我們來聊聊關於如何使用WebView 中的Javascript 來呼叫 Native Code 的部分 首先,你得先來看看這篇[Xamarin] 使用Webview 來做APP因為這篇文章至少講解 ...
- [转]SQL Server 安全性概論與無法刪除資料庫使用者的解決辦法
經常有人來問我特定 SQL Server 資料庫裡的使用者無法刪除的問題,這問題其實跟 SQL Server 的安全性架構有很大關係,解決這個問題當然還是瞭解觀念的重要性大於知道如何解決問題.除了講解 ...
- [Xamarin] 關於Internal Storage ,存取App內部使用資料 (转帖)
最近在開發App,會使用到必須要處理一些App所使用的資料,上網路查一下Android 得作法,包含我自己也實作了一下,可能是因為對Java || Android 不是很孰悉,常常錯在 java.la ...
随机推荐
- UVa 1025 A Spy in the Metro (DP动态规划)
题意:一个间谍要从第一个车站到第n个车站去会见另一个,在是期间有n个车站,有来回的车站,让你在时间T内时到达n,并且等车时间最短, 也就是尽量多坐车,最后输出最少等待时间. 析:这个挺复杂,首先时间是 ...
- 主键冲突异常 DuplicateKeyException
org.springframework.dao.DuplicateKeyException Exception thrown when an attempt to insert or update d ...
- 程序员不常用Linux命令集
1) 关闭指定网卡,如关闭网卡eth0 ifconfig eth0 down 也可以使用ifdown,通常ifdown是一个指向ifup的软链接,而ifup为一个脚本文件. 2) 命令自启动,如希望机 ...
- swift - 动态计算文本高度
func heightOfCell(text : String) -> CGFloat { let attributes = [NSFontAttributeName:UI ...
- java并发编程实战:第十三章----显示锁
一.Lock与ReentrantLock Lock接口中定义了一种无条件.可轮询的.定时的以及可中断的锁获取操作,所有加锁和解锁的方法都是显式的. 1 public interfece Lock 2 ...
- Android-MediaPlayer-音频播放-异步准备
在上一篇博客,Android-MediaPlayer-音频播放-普通准备,介绍了普通准备的播放: 一般在开发中,要使用异步准备比较好,因为准备是要去准备硬件来播放,是耗性能的 异步准备和普通准备的区别 ...
- vue+elementui后台管理快捷代码片段
Form <el-form labelPosition="right" labelWidth="10%" size="small" : ...
- Ultimate guide to learning AngularJS in one day
What is AngularJS? Angular is a client-side MVC/MVVM framework built in JavaScript, essential for mo ...
- Kafka与.net core(一)安装
1.安装JDK 目前官网不能直接下载,在网上找到1.8.0版本安装包下载到本地. 1.1.下载jdk并解压 [root@iz2zei2y693gtrgwlibzlwz java]# ls jdk1.. ...
- UWP开发入门(一)——SplitView
接下来会写一个UWP(Universal Windows Platform)开发入门的系列,自己学习到哪里,有什么心得总结,就会写到哪里.本篇对适用于顶层导航的SplitView控件展开讨论. 首先S ...