Xamarin.Forms: Xamarin.Forms:Xamarin Android上的保存文件对话框

问题描述 投票:-1回答:3

我想把一个文件保存到设备上,问题是我在后面的代码中硬编码了文件名。

问题是我在后面的代码中硬编码了文件名。

enter image description here

我的要求是要求用户用用户定义的文件名保存文件。我如何通过在Xamarin.Forms中打开文件保存对话框来要求用户保存文件?

xamarin xamarin.forms xamarin.android filenames savefiledialog
3个回答
3
投票

你解决了吗?能不能把你的解决方案贴出来,以防万一?这个问题可能符合你的要求,它使用了这个插件。Xam.plugin.filepicker Xam.Plugin.FilePicker工作正常,但无法获得文件。

下面是使用Rg.Plugins.Popup cs制作的最简单的弹出页面。

public partial class PromptPopup : PopupPage
{
    public event EventHandler Oked;
    public event EventHandler Canceled;
    public PromptPopup(string title, string text)
    {
        InitializeComponent();
        PopupText.Text = text;
        PopupTitle.Text = title;
    }

    private void OnCancel(object sender, EventArgs e)
    {
        this.Canceled(sender, e);
        PopupNavigation.PopAsync(false);
    }
    private void OnOk(object sender, EventArgs e)
    {
        this.Oked(sender, e);
        PopupNavigation.PopAsync(false);
    }
}

它的xaml。

<StackLayout VerticalOptions="Center" HorizontalOptions="FillAndExpand" Padding="20, 20, 20, 20">
<StackLayout BackgroundColor="White" Padding="10, 10, 10, 10">
  <Label x:Name="PopupTitle" Text="PromptPopupTitle" TextColor="Gray" FontSize="20" HorizontalOptions="Center" />
  <ScrollView>
    <StackLayout>
      <StackLayout Orientation="Horizontal">
        <Label x:Name="PopupText"
               HorizontalOptions="FillAndExpand"
               HorizontalTextAlignment="Center"
               TextColor="Gray"></Label>
      </StackLayout>
      <StackLayout Orientation="Horizontal" HorizontalOptions="FillAndExpand">
        <Button Text="{i18n:Translate PopupButtonCancel}" Clicked="OnCancel" HorizontalOptions="FillAndExpand"></Button>
        <Button Text="{i18n:Translate PopupButtonOk}" Clicked="OnOk" HorizontalOptions="FillAndExpand"></Button>
      </StackLayout>
    </StackLayout>
  </ScrollView>
</StackLayout>

(这个页面来自于一个PopupPage而不是ContentPage)

你可以这样称呼它

var page = new PromptPopup("title", "text");
page.Oked += Page_OkedLogout;
page.Canceled += Page_CanceledLogout;
await PopupNavigation.PushAsync(page);

进一步深度支持。https:/github.comrotorgamesRg.Plugins.Popup。


0
投票

你必须自己实现文件选取器,没有内置的方法可以做到这一点,如果你想要的是这个,最好去 GitHub 上看看。

在我听来,你可以通过弹出一个文本框,让用户输入一个文件名,用一个regex之类的东西验证文件名,然后用这个文件名保存文件就可以轻松实现你想要的东西,你甚至可以直接保存文件,然后给他们一个重命名的选项,把文件全部罗列出来,但这一切都太宽泛了,我无法给你一个准确的实现方法,所以我最能为你做的就是告诉你简单的方法来实现你想要做的事情。


0
投票

选择文件后你只要用 "条目 "打开弹出窗口,用 "条目文本 "保存文件即可,你可以用"Rg.Plugins.Popup"

© www.soinside.com 2019 - 2024. All rights reserved.