質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

1回答

2759閲覧

Xamarin.Android - await/asyncについて

sezaki_H

総合スコア41

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

1クリップ

投稿2018/08/14 02:32

前提・実現したいこと

Xamarin.Androidにてメモ帳のようなアプリを作りたいのですが、await/asyncの理解が及んでいません。

発生している問題・エラーメッセージ

エラー CS4033 'await' 演算子は、非同期メソッド内でのみ使用できます。このメソッドに 'async' 修飾子を指定し、戻り値の型を 'Task' に変更することを検討してください。 エラー CS4033 'await' 演算子は、非同期メソッド内でのみ使用できます。このメソッドに 'async' 修飾子を指定し、戻り値の型を 'Task' に変更することを検討してください。

該当のソースコード

c#

1//ListViewからの遷移編集 2 3 4using System; 5using System.Collections.Generic; 6using System.Linq; 7using System.Text; 8 9using Android.App; 10using Android.Content; 11using Android.OS; 12using Android.Runtime; 13using Android.Views; 14using Android.Widget; 15using Android.Text; 16using PCLStorage; 17 18namespace MemoMain_1.Resources.layout 19{ 20 [Activity(Label = "FileEdit")] 21 public class FileEdit : Activity 22 { 23 24 protected override void OnCreate(Bundle savedInstanceState) 25 { 26 base.OnCreate(savedInstanceState); 27 28 // Create your application here 29 30 //メモ画面の紐づけ 31 SetContentView(Resource.Layout.layout1); 32 33 EditText title = FindViewById<EditText>(Resource.Id.editText1); 34 EditText memo = FindViewById<EditText>(Resource.Id.editText3); 35 36 37 38 IFolder rootFolder = FileSystem.Current.LocalStorage; 39 40 41 var intent = Intent; 42 //画面遷移でファイル名を受け取る 43 var cfile = Intent.GetStringExtra("clickfile"); 44 45 title.Text = cfile; 46 47 //ファイルからメモ文を読み取り 48 IFile file = await rootFolder.GetFileAsync(cfile); 49 string saveddata = await file.ReadAllTextAsync(); 50 memo.Text = memodata; 51 52 53 54 } 55 56 57 } 58} 59

試したこと

protected override void OnCreate(Bundle savedInstanceState)

protected override async System.Threading.Tasks.Task OnCreateAsync(Bundle savedInstanceState)
に変更すると下記のエラーが発生しました。

エラー CS0115 'FileEdit.OnCreateAsync(Bundle)': オーバーライドする適切なメソッドが見つかりませんでした。
エラー CS0115 'MemoActivity1.OnCreateAsync(Bundle)': オーバーライドする適切なメソッドが見つかりませんでした。
エラー CS0115 'MainActivity.OnCreateAsync(Bundle)': オーバーライドする適切なメソッドが見つかりませんでした。

補足情報(FW/ツールのバージョンなど)

Xamarin.Android SDK(ver:8.3.32)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

閲覧していただいた方ありがとうございます。
このコードは画面遷移後のもので、ファイル名だけを画面遷移時に渡し、ファイルの読み取りは遷移後に行うような処理でしたが、画面遷移時にファイルの読み取りを行いファイル名と同時に渡すことで解決しました。ありがとうございました。

投稿2018/08/14 02:59

sezaki_H

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問