会社行きたくなかったんです。

自由になりたくて会社辞めました

IT プログラミング

Visual StudioでXamarinのクイックスタートのアプリ(Phoneword)を作ってみました。

投稿日:

Visual StudioでXamarinのクイックスタートのアプリ(Phoneword)を作ってみました。
こちらのページのものです。

翻訳というわけではないのですが、なんとか英語を読みながらやってみました。

XamarinもC#も初心者なので、
言われるがままにやってみます。

スポンサーリンク

アルファベットを数字の電話番号に変換して、電話するアプリを作ります。

まずは、新しいプロジェクト:Phonewordを作成

を開きます。

 

ツールボックスから、Text (Large)をPhonewordの下にドラッグドロップします。

textView1が追加されるので、Textプロパティを「Enter a Phoneword」に変更します。


textView1の下にPlain Textを追加し、idを「@+id/PhoneNumberText」、textを「1-855-XAMARIN」

 

idを「@+id/PhoneNumberText」と変更することで、
右上のプロパティの下が、editText1が、PhoneNumberTextになりますが、変更されない場合は、他のコントロールを一度クリックしてから、PhoneNumberTextを再度クリックすると表示が更新されます。

PhoneNumberTextの下にButtonを追加し、idを「@+id/TranslateButton 」、textを「Translate」にします。

 

TranslateButtonの下にButtonを追加し、idを「@+id/CallButton」、textを「Call」にします。

次に、「PhoneTranslator.cs」というファイルを追加します。


「PhoneTranslator.cs」に、以下のコードを書き込みます。

ToUpperInvariantというのは、インバリアントカルチャを使用して大文字に変換する関数です。
invariantは不変のという意味なので、特定の言語や国・地域に依存しない特別なカルチャということだそうです。

数字はそのまま、アルファベットの場合、ABCは2、DEFは3、、、と言った感じで変換しています。

次は、MainActivity.csを以下のように書き換えます。

次に、アプリケーションに電話をかける権限を与えます。
ソリューションエクスプローラのPropertiesを右クリックして「開く」
左側のAndroid マニフェストをクリックして、下の方に下がるとこうなっています。

CALL_PHONEにチェックを入れます。

保存してビルドしてみます。

ビルド成功しました。

動かしてみました。

Translateをクリックしたら、文字列が電話番号に変換されます。

Callをクリックしてみました。

怖いけど、さらにCallをクリックしてみました。

電話かかってしまったようです。しかもつながっています。
エミュレーターなので、実際につながっているかどうかわかりませんが、少しビビってしまいました。

ついつい、先にアプリを動かしてしまいましたが、チュートリアルはまだ続いています。
最後に、アプリケーションにアイコンを設定する方法が解説されています。

Xamarin App Icons setをダウンロードして解凍しておきます。

ソリューションエクスプローラで、Resorce>drawable>Icon.pngを削除します。

 

drawable>追加>既存の項目

解凍したフォルダのAndroid\drawable\Icon.pngを追加します。


さらに、残りの「drawable-」で始まるフォルダをすべて、ドラッグドロップで、drawableフォルダに追加します。

 

 

そして、ソリューションエクスプローラのPropertiesを右クリックして「開く」をクリックし、
左側のAndroid マニフェストをクリックします。

 

アプリケーション アイコンが「@drawable/Icon」となっていない場合は、設定しておきます。

一度、エミュレータで実行してみたあとで、アプリケーション一覧を見てみます。

Phonewordにアイコンがちゃんと設定されています。

Xamarin関連書籍の検索結果はこちらです。

楽天で「Xamarin」を検索した結果

アマゾンで検索した結果

 

-IT, プログラミング

Copyright© 自由になりたくて会社辞めました , 2023 AllRights Reserved Powered by AFFINGER4.