Android putExtra和getIntExtra发生的有趣事情

Android putExtra和getIntExtra发生的有趣事情,android,Android,我正在开发一个游戏,在我的菜单屏幕上有一系列的按钮,可以将玩家带到游戏的不同层次。我已经使用putExtra和getIntExtra从菜单活动到游戏活动获取一个Int,然后设置游戏级别 这一切都很好地工作,我遇到的问题是,当使用“后退”按钮返回菜单活动时,您必须按两次按钮才能进入菜单,而不是一次。如果您点击它一次,它会将您带到与getIntExtra函数的默认Int对应的级别 我不知道它为什么这样做 如有任何建议,将不胜感激 --编辑-- 菜单内活动 public void onGoToGam

我正在开发一个游戏,在我的菜单屏幕上有一系列的按钮,可以将玩家带到游戏的不同层次。我已经使用putExtra和getIntExtra从菜单活动到游戏活动获取一个Int,然后设置游戏级别

这一切都很好地工作,我遇到的问题是,当使用“后退”按钮返回菜单活动时,您必须按两次按钮才能进入菜单,而不是一次。如果您点击它一次,它会将您带到与getIntExtra函数的默认Int对应的级别

我不知道它为什么这样做

如有任何建议,将不胜感激

--编辑--

菜单内活动

 public void onGoToGame1Click(View view) {

    Intent getNameScreenIntent = new Intent(this, GameActivity.class);

    final int result = 1;
    startActivityForResult(getNameScreenIntent, result);

    getNameScreenIntent.putExtra( "int", 1);
    startActivity(getNameScreenIntent);
}
游戏内活动

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.game_layout);

    levelTV = (TextView) findViewById(R.id.level);

    Intent getNameScreenIntent = getIntent();
    level = getNameScreenIntent.getIntExtra("int", 1);

    levelTV.setText(" " + level);

}

private void levelUpdate() {

    switch (score) {

        case 10:
            level = 2;
            break;
        case 20:
            level = 3;
            break;
        case 30:
            level = 4;
            break;
        case 40:
            level = 5;
            break;
}

您同时使用
startActivityForResult()
startActivity()
,因此您的活动将启动两次。 第一次不加价,第二次加价

你应该选择其中一个<代码>startActivityForResult()仅当您需要活动在完成时返回结果时才应使用


旁注:startActivityForResult()的第二个参数不是结果。这是一个请求代码,允许调用者在收到对
onActivityResult()
的回调时知道响应了哪个请求

你为什么用这条线

 startActivityForResult(getNameScreenIntent, result);

因为您通过使用上述和startActivity()启动两个活动,所以最终会有两个GamingActivity,一个在另一个之上。当您使用“后退”按钮时,会关闭上方的按钮,应用程序会显示您启动的其他活动。如果要使用额外的,则应仅使用startActivity()

请提供一些代码示例。特别是如何使用putExtra/getIntExtra函数。