gpt4 book ai didi

xamarin - ImagePicker MainActivity 实例未定义

转载 作者:行者123 更新时间:2023-12-02 00:17:44 26 4
gpt4 key购买 nike

按照以下链接添加 ImagePicker

https://learn.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/dependency-service/photo-picker

在这里,对于 Android 实现,问题是实例未在 MainActivity.cs 中定义

[assembly: Dependency(typeof(PicturePickerImplementation))]

namespace DependencyServiceSample.Droid
{
public class PicturePickerImplementation : IPicturePicker
{
public Task<Stream> GetImageStreamAsync()
{
// Define the Intent for getting images
Intent intent = new Intent();
intent.SetType("image/*");
intent.SetAction(Intent.ActionGetContent);

// Start the picture-picker activity (resumes in MainActivity.cs)
MainActivity.Instance.StartActivityForResult(
Intent.CreateChooser(intent, "Select Picture"),
MainActivity.PickImageId);

// Save the TaskCompletionSource object as a MainActivity property
MainActivity.Instance.PickImageTaskCompletionSource = new TaskCompletionSource<Stream>();

// Return Task object
return MainActivity.Instance.PickImageTaskCompletionSource.Task;
}
}
}

而且 MainActivity 没有实例字段,是否有其他方法来获取实例?

public class MainActivity : FormsAppCompatActivity
{
...
// Field, property, and method for Picture Picker
public static readonly int PickImageId = 1000;

public TaskCompletionSource<Stream> PickImageTaskCompletionSource { set; get; }

protected override void OnActivityResult(int requestCode, Result resultCode, Intent intent)
{
base.OnActivityResult(requestCode, resultCode, intent);

if (requestCode == PickImageId)
{
if ((resultCode == Result.Ok) && (intent != null))
{
Android.Net.Uri uri = intent.Data;
Stream stream = ContentResolver.OpenInputStream(uri);

// Set the Stream as the completion of the Task
PickImageTaskCompletionSource.SetResult(stream);
}
else
{
PickImageTaskCompletionSource.SetResult(null);
}
}
}
}

最佳答案

MainActivity 类中添加:

internal static MainActivity Instance { get; private set; }

protected override void OnResume()
{
Instance = this;
base.OnResume();
}

也感谢@SushiHangover's answer这里描述如何初始化Instance对象。

文档很可能缺少这个。

关于xamarin - ImagePicker MainActivity 实例未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56507397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com