[英]Returning back to main activity from gameover screen
嗨,即使我看到了几个有关链接活动或返回活动的话题,也无法回到活动上班。 当用户回答错误或用完游戏时,我会稍微退缩应用程序,因为它会导致分数超过分数并将其显示在游戏中,如果这有助于解决我的问题,则可以使用以下工作代码问题:主类:
public void fail(){
{
Intent myIntent = new Intent(MainActivity.this,gameover.class);
myIntent.putExtra("number", score);
MainActivity.this.startActivity(myIntent);
finish();
}
游戏结束类:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gameover);
re_run = (Button) findViewById(R.id.retry);
EndScore = (TextView) findViewById(R.id.show);
int getVal;
getVal = getIntent().getExtras().getInt("number");
String s = String.valueOf( getVal );
EndScore.setText(s);
}
现在,我之所以共享上面的工作代码,是因为我有一种吸引用户并在游戏结束屏幕上得分的意图,正困扰着重试/返回代码,如下所示:
private void setButtonOnClickListeners(){
re_run.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent retry = new Intent(getApplicationContext(),
MainActivity.class);
startActivity(retry);
}
});
}
从这些主题中我可以发现,这些似乎是正确的方法。 但是在运行代码时,re_run按钮不起作用。 有什么帮助吗?
您可以使用“ setButtonOnClickListeners()
”来实现setOnClickListener,从而覆盖onClick。 但是什么时候调用setButtonOnClickListeners呢?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gameover); re_run = (Button)
findViewById(R.id.retry);
EndScore = (TextView) findViewById(R.id.show);
int getVal;
getVal = getIntent().getExtras().getInt("number");
String s = String.valueOf( getVal );
EndScore.setText(s);
setButtonOnClickListeners();
}
您也许可以检查您的OnClick是否正常工作,并在LogCat中添加日志行。 Log.d("GameOver", "Retry onclick ok");
您正在寻找一个未膨胀的视图(R.id.retry)。
将命令顺序更改为:
super.onCreate(savedInstanceState);
setContentView(R.layout.gameover);
re_run = (Button) findViewById(R.id.retry);
还可以尝试将意图更改为:
Intent retry = new Intent(GameOver.this, MainActivity.class);
retry.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
我个人使用startActivityForResult(Intent)
在屏幕上启动游戏,并且一旦玩家输入了自己的名字或按下了某个东西或使用Back退出了活动,然后它向onActivityResult(..)
返回了一个值,我在其中调用了finish()
。
编辑:
游戏结束,所以我开始使用
Intent i = new Intent();
i.putExtra("Score", scoreCount);
i.setClass(context, HighScoreInputActivity.class);
context.startActivityForResult(i, 0);
然后,当您插入分数和内容时,您可以使用以下命令关闭GameActivity
的游戏屏幕
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
this.finish();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.