在Android.os.Bundle中,getInt(string key)方法返回的是一个整数。

6
我阅读了关于getInt()方法的文档: public int getInt (String key)
返回与给定键相关联的值,如果给定键的所需类型没有映射,则返回0。
参数: key 一个字符串 返回值: 一个整数值
但我不确定它确切地返回什么。
它返回的是在R.java中的key的ID还是其他内容?

2
例如{"data":1}的键值,getInt("data") = 1 - Proxytype
1
它返回的取决于您发送的参数(正如描述所解释的那样)。如果您有一个集合{{“one”,1},{“two”,2}},“one”将返回1,“two”将返回2,“three”将返回0。 - Stultuske
@Proxytype参数是一个字符串,那么{ key = "possition" ; }呢? - hamid_c
1
@hamid_c:他的例子中的“data”是一个字符串。如果键=“possition”,在Proxytype的示例中它将返回0,因为他的集合中没有该键的元素。 - Stultuske
我相信它会抛出异常或者是零。 - Proxytype
零异常?这是什么意思?它将返回0(而不是抛出异常),因为没有具有键“position”的元素。此方法旨在返回“如果给定键不存在所需类型的映射,则返回0”。 - Stultuske
2个回答

5
它会返回与相同键匹配的捆绑内容。
Bundle bundle = new Bundle();
bundle.putInt("KEY", 1);
int value = bundle.getInt("KEY"); // returns 1

它只是一种映射/字典数据类型,您可以将字符串值与其他内容进行映射。如果您有其他数据类型,则应使用适当的put/get方法。


4

带有示例的内容总是更好。

假设您有两个活动:Activity1和Activity2,并且您想在它们之间传递数据:

Activity1

private static final String MY_KEY = "My Key"
Intent intent = new Intent(Activity1.this, Activity2.class);
Bundle b = new Bundle();

b.putInt(MY_KEY, 112233);

intent.putExtras(b);

startActivity(intent);

Activity 2

private static final String MY_KEY = "My Key"
Bundle b = getIntent().getExtras();

int value = b.getInt(MY_KEY , 0);

//value now have the value 112233

在这个例子中,“返回与给定键相关联的值,如果给定键的所需类型没有映射,则返回0”是什么意思?
使用Bundle,您正在使用键“MY_KEY”将值112233从Activity 1发送到Activity 2。 因此,“MY_KEY”与112233相关联。
正如您所看到的,有第二个参数“0”。
它是默认值。 在Bundle不包含数据的情况下,您将收到“0”(默认值)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接