gpt4 book ai didi

c# - 如何使用 Xamarin.Android 中的单个 Activity 通过单击按钮在 View 之间导航?

转载 作者:行者123 更新时间:2023-12-04 09:39:28 25 4
gpt4 key购买 nike

在 Xamarin Android(不是 Xamarin.Forms)中,我有 2 个 View ,每个 View 都有一个按钮。

在 MainActivity.cs 中,我从第一个 View 开始,并为第一个按钮设置一个 onClick 处理程序。
单击该按钮会打开第二个 View ,该 View 工作正常。

同样在 MainActivity.cs 中,我为第二个按钮(在第二个 View 中)设置了一个 onClick 处理程序。
但是,单击该按钮什么也没做——我什至在处理程序中设置了一个断点,但它永远不会触发。
我想添加一些逻辑,但现在我只想导航回第一个 View 。
这是为第二个按钮设置处理程序的代码...

View v2 = this.LayoutInflater.Inflate(Resource.Layout.view2, null);
Button b2 = v2.FindViewById<Button>(Resource.Id.button2);
b2.Click += b2OnClick;

...和点击处理程序...
private void b2OnClick(object sender, EventArgs eventArgs)
{
SetContentView(Resource.Layout.view1);
}

我只想使用 MainActivity.cs,但如果不可能,请提供替代解决方案。

最佳答案

您首先实例化的 view2 不是您之后设置的 View ,因此按钮单击永远不会触发,您应该为这两个 View 创建一个全局变量,例如

    View v1,v2;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);

v1 = this.LayoutInflater.Inflate(Resource.Layout.content_main, null);
Button button = v1.FindViewById<Button>(Resource.Id.button1);
button.Click += Button_Click;


v2 = this.LayoutInflater.Inflate(Resource.Layout.XMLFile1, null);
Button button2 = v2.FindViewById<Button>(Resource.Id.button2);
button2.Click += Button2_Click;

SetContentView(v1);

}


private void Button_Click(object sender, EventArgs e)
{
SetContentView(v2);
}

private void Button2_Click(object sender, EventArgs e)
{
SetContentView(v1);
}

关于c# - 如何使用 Xamarin.Android 中的单个 Activity 通过单击按钮在 View 之间导航?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62398466/

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