前提・実現したいこと
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)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。