如何使用 Xamarin Android 中的意图从 canvas 面板移动到另一个屏幕

How to move to another screen from canvas board using intent in Xamarin Android

我正在使用 canvas 编写游戏,当游戏结束时,我会显示一个警告对话框,玩家可以在其中选择是转到主屏幕还是重新开始游戏。
重启选项有效,但玩家可以选择移动到主屏幕的选项无效。
我尝试使用 intent,但应用程序在 SnakeBoard 中使用时无法识别函数 StartActivity(intent) .

class SnakeBoard : View
{
Context context;
public SnakeBoard(Context context) : base(context)
        {
            this.context = context;
        }
        protected override void OnDraw(Canvas canvas)
        {
                AlertDialog.Builder builder = new AlertDialog.Builder(context);
                builder.SetTitle("Game Over");
                builder.SetMessage("what do you want to do next?");
                builder.SetCancelable(false);
                builder.SetNegativeButton("restart", Restart);//if the user choses restart, Restart method is activated.
                builder.SetPositiveButton("go to main menu", MainMenu);//if the user choses go to main menu, MainMenu method is activated.
                AlertDialog dialog = builder.Create();
                dialog.Show();
        }
        private void MainMenu(object sender, DialogClickEventArgs e)
        {
            Intent intent = new Intent(context, typeof(GameActivity));
            StartActivity(intent);
        }
}
public class MainActivity : AppCompatActivity
    {
        SnakeBoard sb;
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            sb = new SnakeBoard(this);
            SetContentView(sb);
        }

这是相关代码。当 activity 的内容设置为 class SnakeBoard 的对象时,OnDraw 方法将自动激活。
我想在用户选择 MainMenu 选项时移动到 GameActivity 屏幕。 谢谢!

你应该更换

StartActivity(intent);

用这条线

context.StartActivity(intent);

因为这个 class 没有继承自 Activity。