mono for Android 之StartActivityForResult

使用StartActivityForResult方法可以從打開的界面中接收返回參數。

使用示例:

StartActivityForResult(typeof(ActWelcome), 11);

覆寫方法:

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
		{
			base.OnActivityResult(requestCode, resultCode, data);
			switch (requestCode)
			{
				case  11:
				break;
			}
		}

當ActWelcome界面返回,就會執行上面的方法。requestCode就是我們調用StartActivityForResult方法傳入的第二個參數。

在ActWelcome界面返回時執行以下代碼

SetResult(Result.Ok);
			Finish();


例外情況:

如果在ActWelcome類上面添加了以下代碼,那StartActivityForResult並不會像預期的那樣執行

[Activity(Label = "@string/ApplicationName", MainLauncher = false, 
 Icon = "@drawable/Icon", LaunchMode = LaunchMode.SingleTask)]

主要是這一句LaunchMode = LaunchMode.SingleTask。如果添加了這句代碼,當我們調用StartActivityForResult方法時,會立即執行OnActivityResult方法,且Result爲Cancel,然後再打開ActWelcome界面。接着如果我們從ActWelcome界面返回,並不會執行OnActivityResult方法了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章