ちょっと走り書きのメモです。
Xamarin.Androidで自作のリソースファイルを埋め込んで利用する方法を紹介します。
今回は自分で定義したXMLファイルをAssetsから読み込む例を紹介します。
他にもResourcesに追加する方法やPCL側にリソースを埋め込む方法もありますが、今回は割愛します。
まずはAssetsフォルダにリソースを登録します。
今回はMyXml.xmlというリソースを登録しています。
注意点は、ビルドアクションをAndroidAssetにすることです。(普通に追加すると最初からそうなっていると思いますが)
XMLファイルは今回は次のようになっています。
<?xml version="1.0" encoding="utf-8" ?> <root>Hello, World.</root>
手抜き感満載です。
そして以下のようにして読み込んで利用します。
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); string message; using (var stream = new StreamReader(Assets.Open("MyXml.xml"))) { XmlDocument document = new XmlDocument(); document.Load(stream); message = document.ChildNodes[1].InnerText; } SetContentView (Resource.Layout.Main); var messageTextView = FindViewById<TextView>(Resource.Id.MessageTextView); messageTextView.Text = message; }
ActivityにAssetsというプロパティがあるので、そこからOpenすることでリソースを読み込めます。
ここではXmlDocumentクラスを使っていますが、XMLの構造が決まっているのであればXmlSerializerクラスなどを使うと良いかもしれません。
今回のサンプルを以下に公開しておきます。
よかったらご覧ください。
こんな感じで動きます。
それではまた!