MainActivity.OnActivityResult(int, Result, Intent)
方法是 Android 开发中的一个回调方法,用于处理从其他活动(Activity)返回的结果。这个方法在较新的 Android 版本中已经被弃用,取而代之的是使用 registerForActivityResult
API。
OnActivityResult
是 Android 中的一个生命周期方法,当启动的子活动(通过 startActivityForResult
方法)返回结果时,会调用这个方法。它包含三个参数:
requestCode
:请求码,用于标识请求的来源。resultCode
:结果码,表示子活动的执行结果。data
:返回的数据,通常是一个 Intent
对象。在 Xamarin.Android 中,OnActivityResult
方法可能没有正确地被识别或重写,这通常是因为:
OnActivityResult
方法。由于 OnActivityResult
已经被弃用,推荐使用 registerForActivityResult
API。以下是如何在 Xamarin.Android 中使用 registerForActivityResult
的示例:
using Android.App;
using Android.Content;
using Android.Content.PM;
using Android.OS;
using Android.Widget;
using androidx.activity.result;
using androidx.appcompat.app.AppCompatActivity;
namespace YourNamespace
{
[Activity(Label = "MainActivity")]
public class MainActivity : AppCompatActivity
{
private ActivityResultLauncher<Intent> activityResultLauncher;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_main);
activityResultLauncher = RegisterForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result =>
{
if (result.ResultCode == Result.Ok)
{
Intent data = result.Data;
// 处理返回的数据
}
});
Button button = FindViewById<Button>(Resource.Id.button);
button.Click += (sender, e) =>
{
Intent intent = new Intent(this, typeof(SecondActivity));
activityResultLauncher.Launch(intent);
};
}
}
}
通过这种方式,你可以更现代、更简洁地处理活动间的结果传递。
领取专属 10元无门槛券
手把手带您无忧上云