我正在尝试开发一个游戏应用程序。在游戏结束屏幕上,我想有一个按钮,当你点击它时,它会回到开始。但问题是,它不起作用。我真的不知道为什么它不起作用,我试了所有的方法,但都找不到问题。有人能帮我吗?
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class GameOver extends AppCompatActivity {
MediaPlayer gameoversound;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gameover);
Button weiter_button = (Button) findViewById(R.id.weiter);
weiter_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { goToMainActivity(); }
});
}
private void goToMainActivity() {
Intent back = new Intent( this, MainActivity.class);
startActivity(back);
}
}
- 将
this
更改为GameOver.this
- 除了一些特殊情况外,您不再需要显式地强制转换小部件。这种方式已经有一段时间了
- 如果游戏结束,您最好在启动主"活动"后插入一个
finish();
。您不希望用户通过按下后退按钮返回游戏结束屏幕 - 为你的意愿设置FLAGS。这很方便,因为如果你没有
finish();
某个活动,它会保留在堆栈中,所以它会启动那个活动,但你可能想要一个新的。这将导致导航出现问题 - 添加/检查2个活动的
onBackPressed()
方法 - 此外,指定要重写该方法
@Override public void onClick(View view) { }
- 在XML、
<Button>
标记中,添加
android:clickable=true android:focusable=true