Xamarin Android覆盖OnShowFileChooser取消按钮

时间:2020-03-06 11:00:17

标签: android xamarin xamarin.android

我有一个Xamarin项目,该项目具有一个Web视图,该视图调用文件选择器,然后用以下代码覆盖它:

private void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
    if (requestCode == 1)
    {
        if (null == mUploadMessage)
            return;

        mUploadMessage.OnReceiveValue(WebChromeClient.FileChooserParams.ParseResult((int)resultCode, data));
        mUploadMessage = null;
    } else {
        mUploadMessage.OnReceiveValue(null);
        mUploadMessage = null;
    }
}

public override bool OnShowFileChooser(Android.Webkit.WebView webView, IValueCallback filePathCallback, FileChooserParams fileChooserParams)
{
    var appActivity = CrossCurrentActivity.Current.Activity as MainActivity;

    using (dialogBuilder = new AlertDialog.Builder(this.context))
    {
        dialogBuilder.SetTitle("Upload Image");
        dialogBuilder.SetPositiveButton("Choose from Library", delegate
        {
           Intent chooserIntent = fileChooserParams.CreateIntent();
           chooserIntent.SetType("image/*");
           appActivity.StartActivity(Intent.CreateChooser(chooserIntent, "Select Picture"), 1, OnActivityResult);
        }
        dialogBuilder.SetNegativeButton("Cancel", delegate
        {
           dialogBuilder.Dispose();
        });
    }
    return true;
}

问题在于,一旦我覆盖文件选择器并弹出对话框并单击“取消”按钮,就无法再次单击文件选择器。我尝试将OnShowFileChooser的返回值更改为false,一旦将其设置为false,就无法再次显示文件选择器。

0 个答案:

没有答案