如何使用 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。
我正在使用 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。