如何在没有putextra的情况下使用getIntExtra?

时间:2013-07-09 16:02:34

标签: android

我在一本关于android编程的书中有一个例子

示例中有一个Activity ....

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

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

我对此行感到困惑

正如我之前所了解的那样,我们需要将Intext放入Intent中,然后再将getExtra放入

但在整个代码中没有putExtra。

提前致谢

4 个答案:

答案 0 :(得分:1)

如果额外不在意图

中,您将得到的是默认值(在这种情况下为0)

答案 1 :(得分: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);

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

来自doc

public int getIntExtra (String name, int defaultValue)

从意图中检索扩展数据。

这里

名称:所需项目的名称。

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

  

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

最后一行是你问题的答案