我正在嘗試使用 mvvm 在 Xamarin 中撰寫我的第一個跨平臺應用程式。該應用程式記錄用戶插入的專案(付款)并執行一些操作(預設和其他數學運算)。
我撰寫了添加/更新/洗掉/顯示專案的代碼,當添加專案時,應用程式保存專案并寫入一個帶有自定義擴展名 ( *.dinero)的檔案,其中包含有關專案的所有資訊,因此應用程式會異步加載所有檔案開始。
我嵌入了一個通過電子郵件發送這些檔案的功能,以允許其他用戶將相同的專案添加到其專案串列中。
我的問題是如何將自定義檔案擴展名關聯到我的應用程式以及如何實作打開“newItempage”以允許用戶將專案保存到其檔案的程序?
我發現了將檔案擴展名與 Xamarin Android 應用程式關聯的問題,但我無法理解如何使用它(我必須在其中撰寫答案中報告的代碼)。
uj5u.com熱心網友回復:
我回答我的問題是為了讓別人的生活變得簡單一點。要將檔案與允許在“點擊具有自定義擴展名的檔案”事件發生時啟動應用程式的應用程式關聯,我們必須在MainActivity.cs 上面添加類宣告:
[IntentFilter(new[] { Android.Content.Intent.ActionView },
Categories = new[] { Android.Content.Intent.CategoryDefault },
DataMimeType = "application/*", DataPathPattern = "*.Dinero")]
所以在方法中OnCreate我們必須添加 if 陳述句來處理意圖資料:
if ( Intent.Action== Android.Content.Intent.ActionView)
{
string filecontent = GetFileContent(Intent);
}
在我的情況下,我會閱讀 Dinero 檔案。Intent 資料不包含檔案路徑而是 URI,因此要讀取檔案內容,我們需要呼叫ContentResolver以創建流并最終讀取檔案內容:
string GetFileContent(Android.Content.Intent Intent)
{
Android.Net.Uri uridata = Intent.Data;
StreamReader streamread = new StreamReader(ContentResolver.OpenInputStream(uridata));
string content = streamread.ReadToEnd();
return content;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/363888.html
標籤:C# 沙马林 xamarin.forms 文件关联
