2017-06-20 15 views
0

インテントを使用して1つのアクティビティ1からアクティビティ2にデータを渡します。私はactivity1で私のデータを慰め、私はactivity2に送るデータを見ることができます。しかし、私がactivity2で受け取っているデータをコンソールに入れるとき、私はデータを受け取っていません。私は基本的にインテントを使用する上で正しい手順に従っていますが、そのトリックは機能していません。null GetStringExtra(インテント) - Xamarin.Droid

質問:非同期処理はインテントの使用に影響しますか?

activity1あなたのコメントは、それが間違いだったことを示したので、私は昔の答えを削除し、あなたにこのアップデートを与えた

public const string EXTRA_NAME = "Person Name"; 
string PName = Intent.GetStringExtra(EXTRA_NAME); 
//it is empty 
Console.WriteLine("This is the received detail "+ PName); 
+0

コードサンプルをきれいにしてください。これは私の意見ではほとんど読めません –

+0

@yanyankelevich、今はかなり良いと思っています。 –

+0

驚くほど良いことは間違いありません。 –

答えて

1

private async Task GetData() 
{ 
    var firebase = new FirebaseClient(FirebaseUrl); 
    var items = await firebase.Child("TableName").OnceAsync<Person>(); 

    foreach (var item in items) 
    { 
     Person details = new Person(); 
     details.Name = item.Object.Name; 
     person.Add(details); 
    } 

    void OnItemClick(object sender, int position) 
    { 
     Intent peaceHeroDetail = new Intent(this, typeof(PersonDetailActivity)); 
     Intent.PutExtra(PersonDetailActivity.EXTRA_NAME, person[position].Name.ToString()); 
     // the value of what is being sent is seen 
     Console.WriteLine("This is selected person " +person[position].Name); 
    } 
} 

activity2。

UPDATE

チェックこの次の記事:これまで

Intent peaceHeroDetail = new Intent(this, typeof(PersonDetailActivity)); 
Intent.PutExtra(PersonDetailActivity.EXTRA_NAME, person[position].Name.ToString()); 

Pass data between activities

あなたの最初のアクティビティでは、これを変更する必要があり

Intent peaceHeroDetail = new Intent(this, typeof(PersonDetailActivity)); 
peaceHeroDetail.PutExtra(PersonDetailActivity.EXTRA_NAME, person[position].Name.ToString()); 

と次に使用してください:StartActivity(peaceHeroDetail);

+0

そのエラーについては申し訳ありません。それは実際にはサンプルコードであり、私のコードではあなたの答えが正確にありますが、それは動作していません –

+0

私は 'ToString()'を取り出してみましたが、まだ空のデータを取得しています –

+0

'ToString 'String'オブジェクトで自身を参照しても、それは問題ではありません。あなたの質問に私の最後のコメントを確認してください、どのように2番目の活動を開いている共有してください。 –

関連する問題