[英]Super OnActivityResult not calling Fragment OnActivityResult
我正在為我的應用程序使用Xamarin Studio。 我這里有一個與此類似的問題。 我正在以啟動相機的意圖調用StartActivityForResult
。 相機拍照並返回到應用程序,然后調用主活動的OnActivityResult
。 我的問題是,盡管調用了base.OnActivityResult
,但我的片段的OnActivityResult
從未被命中。
我在這里瀏覽了SO上的解決方案,這些解決方案通常是:
1.在片段內調用base.StartActivityForResult
而不是StartActivityForResult
2.呼叫base.OnActivityResult
在主要活動的OnActivityResult
對未處理請求代碼轉發
3.確保launchMode
中的launchMode
未設置為single
碼:
片段-
void AddImage(object sender, EventArgs e){
//Preparing intent here...
StartActivityForResult (intent, 0);
}
//no override keyword because I'm given a compiler error stating
//that there is no OnActivityResult to override
protected void OnActivityResult(int requestCode, Result resultCode, Intent data){
//I call resultCode.GetHashCode here because I'm using SupportFragment
base.OnActivityResult (requestCode, resultCode.GetHashCode(), data);
if (resultCode == Result.Canceled)
return;
//process image...
}
主要活動 -
protected override void OnActivityResult (int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult (requestCode, resultCode, data);
//processing data from other intents at the main activity level
}
在SupportFragment中,您應該使用
public override void OnActivityResult(int requestCode, int resultCode, Intent data){
base.OnActivityResult (requestCode, resultCode, data);
代替
public override void OnActivityResult(int requestCode, Result resultCode, Intent data) {
注意arg resultCode的類型,以int形式覆蓋
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.