C# 在Xamarin.Forms中推送现有页面
我正在制作一个基于Xamarin.Forms的文本游戏。 目前我的主页上有一个“开始游戏”按钮。 我使用NavigationPage进入游戏页面,如下所示:C# 在Xamarin.Forms中推送现有页面,c#,xamarin,xamarin.forms,xamarin.android,C#,Xamarin,Xamarin.forms,Xamarin.android,我正在制作一个基于Xamarin.Forms的文本游戏。 目前我的主页上有一个“开始游戏”按钮。 我使用NavigationPage进入游戏页面,如下所示: Navigation.PushAsync(new GamePage()); 我正在尝试添加一个“恢复游戏”按钮,该按钮将进入游戏页面,但包含其中存在的所有数据。 基本上,我希望这样,当你退出“游戏页面”时,数据不会被擦除。你可以随时恢复。 我想知道这是否是可能的,因为在调用页面时,游戏页面上的数据太多了,只需调用所有数据即可。您可以在
Navigation.PushAsync(new GamePage());
我正在尝试添加一个“恢复游戏”按钮,该按钮将进入游戏页面,但包含其中存在的所有数据。
基本上,我希望这样,当你退出“游戏页面”时,数据不会被擦除。你可以随时恢复。
我想知道这是否是可能的,因为在调用页面时,游戏页面上的数据太多了,只需调用所有数据即可。您可以在游戏页面的构造函数中定义游戏数据。您可以通过构造函数轻松地将数据传递到此游戏页面。例如:
Navigation.PushAsync(new GamePage(gameData));
而且您的数据不会擦除。无法将现有页面直接加载到Xamarin中。您需要考虑另一种存储游戏状态的方法 最简单的方法是使用一个文本文件(xml、json…),将其作为参数加载并传递到页面
不要忘记在应用程序生命周期的不同事件中保存状态,以避免数据丢失。如何退出GamePage?@DennisSchröer通常使用后退按钮。我想这样做,即使你关闭了应用程序,你仍然可以从上一个游戏中恢复。然后你需要将数据保存在数据库中,并在每次创建或导航页面时加载数据。我已经知道这种方法,但由于数据太多,格式不同,我认为无法完成。是的,但作为@请注意,您可以存储加载的每个页面的数据状态。您可以将这些数据保存到localdb(sqlite等)。应用程序生命周期中断后,您可以检查状态,获取数据并与用户交互,请求加载其数据。