gpt4 book ai didi

java - 启动 Activity 后调用方法

转载 作者:太空宇宙 更新时间:2023-11-04 10:52:53 25 4
gpt4 key购买 nike

我正在制作一款 Android 打地鼠游戏。我的主要 Activity 基本上是启动器,当您按下“播放”按钮时,游戏 Activity 就会开始。这工作正常,因为它显示了背景图像和所有小事,但我不知道如何调用该方法来开始游戏。我尝试从 onCreate() 内部调用它,但这最终导致“玩游戏”本身。我试图在 startActivity(intent) 之后立即调用它,但应用程序崩溃了。我还尝试创建游戏类的实例并在启动 Activity 后调用 play() 方法,但它也不起作用。我不知道游戏 Activity 加载后如何启动游戏方法。

希望我能解释清楚,谢谢。

public class MainActivity extends AppCompatActivity {
ImageButton btnStart;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// Hide TitleBar
try { this.getSupportActionBar().hide();}
catch (NullPointerException e){}

setContentView(R.layout.activity_main);

btnStart = (ImageButton)findViewById(R.id.btnStart);
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), GameView.class);
startActivity(intent);
}
});
}

这是 game_activity 的代码

 protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// Hide TitleBar
try { this.getSupportActionBar().hide();}
catch (NullPointerException e){}

setContentView(R.layout.activity_game_view);

game();
}

game()方法是一个典型的游戏循环。

public void game() {

Random random = new Random();
int index;

/*
* Casting array to store all ImageView on the game
*/
imgViewArray[0] = (ImageView)findViewById(R.id.img1);
imgViewArray[1] = (ImageView)findViewById(R.id.img2);
imgViewArray[2] = (ImageView)findViewById(R.id.img3);
imgViewArray[3] = (ImageView)findViewById(R.id.img4);
imgViewArray[4] = (ImageView)findViewById(R.id.img5);
imgViewArray[5] = (ImageView)findViewById(R.id.img6);
imgViewArray[6] = (ImageView)findViewById(R.id.img7);
imgViewArray[7] = (ImageView)findViewById(R.id.img8);
imgViewArray[8] = (ImageView)findViewById(R.id.img9);
imgViewArray[9] = (ImageView)findViewById(R.id.img10);

int j=0;

while (j < 10) {

// Get a random image to animate
index = random.nextInt(10);


switch(index) {
case 0: imgViewArray[0].setImageResource(images[6]);
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
imgViewArray[0].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
imgViewArray[0].setImageResource(images[0]);
}
});
}
},
300 // The code executes after 300ms
);
break;

最佳答案

我认为你应该将 game() 调用放在 onResume() 内。

关于java - 启动 Activity 后调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47618397/

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