我正在关注一本关于 android 编程的书中的示例
该示例有一个 Activity ....
示例中的一种方法有一行代码:
return getIntent().getIntExtra("KitchenDroid.Question", 0);
我对这条线感到困惑
正如我之前了解到的,我们需要将Extra 放入Intent 中,然后稍后再getExtra
但在整个代码中没有 putExtra 。
提前致谢
我正在关注一本关于 android 编程的书中的示例
该示例有一个 Activity ....
示例中的一种方法有一行代码:
return getIntent().getIntExtra("KitchenDroid.Question", 0);
我对这条线感到困惑
正如我之前了解到的,我们需要将Extra 放入Intent 中,然后稍后再getExtra
但在整个代码中没有 putExtra 。
提前致谢
当您使用 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);
如果您有启动当前活动的代码,请检查它是否存在。如果您没有该代码,则作者必须假定其他活动负责传递该参数。
该putExtra()
方法应该在创建用于启动活动的意图的代码中,而不是在活动代码本身中。
如果额外内容不在意图中,您将得到的只是默认值(在这种情况下为 0)
从文档
public int getIntExtra (String name, int defaultValue)
从意图中检索扩展数据。
这里
name :所需项目的名称。
defaultValue :如果没有使用给定名称存储所需类型的值,则返回的值。
它返回先前使用 putExtra() 添加的项目的值,如果没有找到则返回默认值。
最后一行是你问题的答案