大家好,即使我已经看过几个关于链接活动或回归的话题,但我无法让我回到活动中去工作。当用户得到一个错误的答案或者时间不足以进入游戏时,我会将应用程序放回到游戏中,并将游戏结果显示在游戏中,如果它有助于解决我的问题,那么这就是工作代码问题: 主类:
public void fail(){
{
Intent myIntent = new Intent(MainActivity.this,gameover.class);
myIntent.putExtra("number", score);
MainActivity.this.startActivity(myIntent);
finish();
}
gameover class:
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);
}
现在我分享上述工作代码的原因是因为我觉得将用户和得分带到gameover屏幕的意图是弄乱了重试/返回代码,如下所示:
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按钮什么都不做。有什么帮助吗?
答案 0 :(得分:1)
您使用“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");
答案 1 :(得分:0)
你在观看之前找到了一个观点(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);
答案 2 :(得分:0)
我个人使用startActivityForResult(Intent)
在屏幕上开始游戏,一旦玩家输入了他的名字或按下了某些内容或者退出了活动,那么它会返回一个值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();
}