0

我现在正在处理我的关卡选择器活动,我想从我在 MainGameView 中选择的那个关卡中获得结果,该关卡由另一个活动运行。我该怎么做呢?

这就是我选择 1 级时的目的:

     Button test1 = (Button)findViewById(R.id.test1);
     test1.setOnClickListener(new OnClickListener() {

       public void onClick(View v) {
            setLevel(1);
            Intent start = new Intent("nielsen.happy.activities.HAPPYACTIVITY");
            startActivityForResult(start, getLevel());
            finish();
        }
    });

但我该去哪里?如何将此值添加到我的视图中,以便我可以根据他们选择的级别更改位图和其他值?我需要在"HappyActivity"(MainGameAcitvity) 中做些什么来获得结果吗?因为现在它回来了0

游戏设置的解释:菜单->关卡选择器->游戏。所以我需要从 levelselector 获取结果到游戏中,所以它知道从哪个级别开始。

4

1 回答 1

1

(更新更正响应) 不要使用 startActivityForResult()。

试试这个活动 A:
Intent start = new Intent("nielsen.happy.activities.HAPPYACTIVITY"); start.putExtra("level", getLevel());
startActivity(start);
finish();

然后在活动 B 中,执行以下操作:
Extras mBundle = getIntent().getExtras();
int level = mBundle.getInt("level");

(原始的,不正确的响应)让我们将活动 A 称为上面包含您的示例代码的活动。让我们将活动 B 称为您称为 HAPPACTIVITY 的活动。

活动 A 使用请求代码调用 startActivityForResult()。Activity B 启动并在退出之前调用 setResult(int code)。

当活动 B 结束时,A 通过 onActivityResult() 方法返回顶部。

实现一个 onActivityResult() 并查看您获得的属性。

仅供参考,有一种情况是 setResult(RESULT_OK) 或 setResult(RESULT_CANCELED) 不会在 A 中触发 onActivityResult() (我不记得是什么情况了)。

于 2012-09-09T16:54:37.513 回答