在同一页面或单独页面上显示数据?

时间:2016-05-17 16:16:59

标签: c# android xamarin

我正在制作我的第一个移动应用。我正在从用户那里获得输入,并在将数据检索到数据集之前让他们单击按钮。所有这些都运作良好但是显示数据已经让我陷入困境。可以/我应该在同一页面中显示它还是创建第二个?如何从我的c#代码中调用第二页?我不了解Xamarin和移动设备的最佳实践,因此任何帮助或指导都会有所帮助。

1 个答案:

答案 0 :(得分:0)

有多种方法可以做到这一点,这取决于你的应用程序。我假设你没有使用xamarin表单,所以我会给出默认的android / iOS答案。

可以/我应该在同一页面中显示它吗?

  • 如果您正在进行常规搜索控制,则有助于在与您输入的页面相同的页面中显示搜索结果。
  • 如果您有一个项目列表,其中一个项目显示更多详细信息,那么通常的方法是导航到显示信息的新页面。所以你必须创建另一个页面。
  • 有多种方法可以完全取决于您的应用。

如何从我的c#代码中调用第二页?

您不会从第一页调用第二页,而是启动页面并传递所需信息。

Android:您将使用它的布局文件创建一个新活动,并使用意图从您的操作中启动活动(单击您的案例中的按钮)。

您可以使用this tutorial加快使用miltiscreen Xamarin应用程序的android。您的代码应类似于以下内容。

Button yourButton = FindViewById<Button> (Resource.Id.YourButtonId);
yourButton.Click += (sender, e) =>
{
  var intent = new Intent(this, typeof(SecondActivity));
  StartActivity(intent);
};

要将信息传递到第二页,您可以使用其中一种intent.PutExtra()方法。与

类似
intent.PutStringArrayListExtra("YourKey", myList);

通过intent将列表传递给启动活动,将值存储在YourKey下。在SecondActivity中,您可以使用

从意图中获取数据
intent.GetExtra("YourKey")

iOS:涉及的代码不多,所以我将列出简要执行此操作的步骤。您可以使用this tutorial开始使用多屏幕iOS应用程序。

  1. 您将使用Interface Builder或Xamarin Studio在主故事板中创建一个新控制器。
  2. 在第一个视图中,按下按钮。
  3. 按Ctrl并将其拖动到新的ViewController。在发布您的点击时选择显示(推送)segue。
  4. 在FirstViewController中覆盖prepareForSegue并设置要在SecondViewController中使用的数据。
  5. 如下所示。

    public override void PrepareForSegue (UIStoryboardSegue segue, NSObject sender)
      {
        base.PrepareForSegue (segue, sender);
    
        // set the View Controller that’s powering the screen we’re
        // transitioning to
    
        var secondViewController = segue.DestinationViewController as SecondViewController;
    
        secondViewController.YourData = "Your data you want to pass over";
     }
    

    如果这回答了您的问题,请告诉我。古德勒克。