gpt4 book ai didi

xamarin - 在 Xamarin Android 中单击按钮来调用 Xamarin.Forms.Page?

转载 作者:行者123 更新时间:2023-12-02 17:09:29 25 4
gpt4 key购买 nike

我需要通过 Xamarin.Android 中的 Activity 调用 Xamarin.Forms Page

我使用了[Java.Interop.Export("btnOne1Click")]来调用Xamarin.Forms Page

如果我使用App.Current.MainPage = new RootPage();,代码运行不会出现错误,但它不会导航到该页面

我不想在 MainActivity 上调用 [Java.Interop.Export("btnOne1Click")]

[Activity(Label = "FailureActivity")]
public class FailureActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
RequestWindowFeature(WindowFeatures.NoTitle);

SetContentView(Resource.Layout.Failure);

Button button = FindViewById<Button>(Resource.Id.txt_go_onjobs);
}

[Java.Interop.Export("btnOne1Click")]
public void btnOne1Click(Android.Views.View v)
{
try
{
Xamarin.Forms.Forms.Context.StartActivity(typeof(RootPage));
}
catch(Exception ex)
{ }
}
}

最佳答案

Xamarin 表单在一项事件上运行,该事件最接近您的主要事件。

有两个示例项目向您展示如何在代码的 native 部分和表单部分之间进行通信,可以在此处找到:

  1. https://github.com/xamarin/xamarin-forms-samples/tree/master/Forms2Native
  2. https://github.com/xamarin/xamarin-forms-samples/tree/master/Native2Forms

但是,要回答您的问题,您需要执行以下操作:

button = FindViewById<Button> (Resource.Id.txt_go_onjobs);
button.Click += (sender, e) => {
// this is your Xamarin.Forms screen
StartActivity(typeof(FormsActivity));
};

现在,在您的 FormsActivity 中调用:

[Activity (Label = "FormsActivity")]            
public class FormsActivity : Xamarin.Forms.Platform.Android.FormsApplicationActivity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);

Xamarin.Forms.Forms.Init (this, bundle);
LoadApplication (new App ());
}
}

关于xamarin - 在 Xamarin Android 中单击按钮来调用 Xamarin.Forms.Page?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46053929/

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