gpt4 book ai didi

Android:从 SurfaceView 更改 Activity

转载 作者:行者123 更新时间:2023-11-29 01:50:38 26 4
gpt4 key购买 nike

我正在用 Canvas 制作游戏。我需要这样做,以便当游戏获胜时它会更改 Activity ,但这只能在 Activity 文件中完成。所以我的游戏是这样工作的:它从 MainActivity.class 开始,然后创建 Canvas 并将其设置为它的 View 。

MainAcitivity.java:

public class MainActivity extends Activity {
private MainGamePanel game;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
// making it full screen
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// set our MainGamePanel as the View
game = new MainGamePanel(this, 1);
setContentView(game);

}
}

主游戏面板.java:

public class MainGamePanel extends SurfaceView implements
SurfaceHolder.Callback {

public MainGamePanel(Context context, int lvl) {
super(context);
this.context = context;
Level = lvl;
getHolder().addCallback(this);
setFocusable(true);

thread = new MainThread(getHolder(), this);

ball = new com.csdevelopers.canvas.sprite.Ball(
BitmapFactory.decodeResource(getResources(), R.drawable.ball),
100, 100);
if (Level == 1) {
lvl1 = new lvl1(context);
}

public void checkWon1(){
if(lvl1.checkWon(ball)){
// change Activity HERE!!!
}
}

}

因此,在 public void checkWon1() 中,我无法更改 Activity ,因为无法从非 Activity 类调用 Intent 。我怎样才能回到 MainActivity 并告诉它更改 Activity?

如果您需要更多解释,请发表评论。

最佳答案

你像这样改变它:

Intent intent = new Intent().setClass(getContext(), ActivityToChange.class);
((Activity) getContext()).startActivity(intent);

关于Android:从 SurfaceView 更改 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18316347/

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