xamarin 如何在ActivityResultLauncher中传递请求代码

5gfr0r5j  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(240)

我正在更新一些Xamarin.Android代码以使用更新的AndroidX API。在我的项目中启动Activity的旧方法是这样的:

var intent = new Intent(this.Activity, typeof(SomeActivity));
intent.PutExtra("someVariableA", a);
intent.PutExtra("someVariableB", b);
StartActivityForResult(intent, 0);

新的方法是用ActivityResultLauncher对象:

activityResultLauncher.Launch(intent);

但是如何传递请求代码呢?(StartActivityForResult中的第二个参数)

6vl6ewon

6vl6ewon1#

首先,你不需要onActivityResult()。这种方法很旧。现在你有了用于特定目的的启动器。创建一个函数,如下所示:

ActivityResultLauncher<String> imageActivityResultLauncher = registerForActivityResult(
            new ActivityResultContracts.GetContent(),
            uri -> 
               //do something with uri
            });

如果你想启动这个,只要写上:

imageActivityResultLauncher.launch("image/*");

有关详细信息,请参阅
https://stackoverflow.com/a/63654043/12555686

相关问题