gpt4 book ai didi

android - onBackPressed() 后按钮没有反应

转载 作者:行者123 更新时间:2023-11-29 21:07:57 31 4
gpt4 key购买 nike

我正在编写一个小游戏,在开始屏幕上,有不同的选项,比如开始游戏,开始一个新的 Activity 。但其他按钮,如“法律内容”或“教程”,仅通过 setContentView 显示新的 XML 布局。

现在,我正在尝试让 BackButton 在您处于其中一种布局时起作用(这样您在按下它时会返回到开始屏幕)。我正在使用 onBackPressed() 方法,但也尝试使用 onKeyDown 方法(在我的情况下效果相同)。我在该方法中所做的就是使用 setContentView 再次调出开始屏幕布局。

问题是,一旦我回到开始屏幕,按钮就不起作用了。按下时它们变成橙色,但没有任何反应。

有什么我需要更改的建议吗?

我的(缩短的) Activity :

public class Startbildschirm extends Activity {

private int mSchwierigkeit = Const.LEICHT;

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

setContentView(R.layout.startbildschirm);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

schwierigkeitListener();
impressumListener();
highscoreListener();
tutorialListener();
startListener();

}

private void schwierigkeitListener () {
Button einfach = (Button) findViewById(R.id.radioEinfach);
einfach.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
mSchwierigkeit = Const.LEICHT;
}
});

Button mittel = (Button) findViewById(R.id.radioMittel);
mittel.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
mSchwierigkeit = Const.MITTEL;
}
});

Button schwer = (Button) findViewById(R.id.radioSchwer);
schwer.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
mSchwierigkeit = Const.SCHWER;
}
});
}

private void impressumListener () {
Button impressum = (Button) findViewById(R.id.buttonImpressum);
impressum.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
setContentView(R.layout.impressum);
}
});
}

private void highscoreListener () {
Button highscore = (Button) findViewById(R.id.buttonHighscore);
highscore.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
String highscoreImp = getOldHighscore();
setContentView(R.layout.highscore);
TextView highscoreanzeige = (TextView) findViewById(R.id.highscore);
highscoreanzeige.setText(highscoreImp+" "+"sekunden");
}
});
}

private void tutorialListener () {
Button tutorial = (Button) findViewById(R.id.buttonTutorial);
tutorial.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
setContentView(R.layout.tutorial);
}
});
}

private void startListener () {
Button start = (Button) findViewById(R.id.buttonStart);
start.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
Intent startSpiel = new Intent(Startbildschirm.this, Spiel.class);
Bundle giveSchwierigkeit = new Bundle();
giveSchwierigkeit.putInt("schwierigkeit", mSchwierigkeit);
startSpiel.putExtras(giveSchwierigkeit);
startActivity(startSpiel);
}
});
}

public void onBackPressed () {
setContentView(R.layout.startbildschirm);
}


}

最佳答案

@laalto 评论绝对正确,所以在这种情况下,请放在方法下方或只需记忆 onBackPressed() 中的 OnCreate View 方法

public void onBackPressed () {
onCreate(null);
}

或者第二种方式

public void onBackPressed () {
setContentView(R.layout.startbildschirm);
schwierigkeitListener();
impressumListener();
highscoreListener();
tutorialListener();
startListener();
}

就是这样......

关于android - onBackPressed() 后按钮没有反应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23907854/

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