2

我正在关注一本关于 android 编程的书中的示例

该示例有一个 Activity ....

示例中的一种方法有一行代码:

return getIntent().getIntExtra("KitchenDroid.Question", 0);

我对这条线感到困惑

正如我之前了解到的,我们需要将Extra 放入Intent 中,然后稍后再getExtra

但在整个代码中没有 putExtra 。

提前致谢

4

4 回答 4

1

当您使用 getIntent() 时,您将获得启动当前活动的意图。这意味着应该将“KitchenDroid.Question”放入另一个 Activity 的意图中。

Intent i = new Intent(this, ActivityToStart.class);
Bundle b = new Bundle();
b.putString("KitchenDroid.Question", "12");
i.putExtras(b);
startActivity(i);

如果您有启动当前活动的代码,请检查它是否存在。如果您没有该代码,则作者必须假定其他活动负责传递该参数。

于 2013-07-09T16:06:58.240 回答
1

putExtra()方法应该在创建用于启动活动的意图的代码中,而不是在活动代码本身中。

于 2013-07-09T16:07:20.803 回答
1

如果额外内容不在意图中,您将得到的只是默认值(在这种情况下为 0)

于 2013-07-09T16:05:16.007 回答
1

文档

public int getIntExtra (String name, int defaultValue)

从意图中检索扩展数据。

这里

name :所需项目的名称。

defaultValue :如果没有使用给定名称存储所需类型的值,则返回的值。

它返回先前使用 putExtra() 添加的项目的值,如果没有找到则返回默认值。

最后一行是你问题的答案

于 2013-07-09T16:08:17.700 回答