我正在通过Intent
/ Bundle
找出我的方法中的数据。我已经尝试添加断点来检查数据,但我没有看到任何东西。也许是因为它是Parcelable
我无法在Eclipse中手动读取它。
例如,onActivityResult(int requestCode, int resultCode, Intent data)
为Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI)
。我如何知道可用的数据?请注意,我不是要求提供哪些数据,但我是如何理解的,以便我可以将相同的想法应用于Android框架中的任何Bundle
/ Intent
?也许这看起来像文档一样简单,但我没有看到完整的数据列表,我在Eclipse中看不到它。所以我迷路了。
答案 0 :(得分:75)
Bundle.keySet()
为您提供捆绑包中所有密钥的列表。也就是说,通常只需要某些键并查询它们,但keySet()
用于检查从某处获得的包。
答案 1 :(得分:46)
public static String bundle2string(Bundle bundle) {
if (bundle == null) {
return null;
}
String string = "Bundle{";
for (String key : bundle.keySet()) {
string += " " + key + " => " + bundle.get(key) + ";";
}
string += " }Bundle";
return string;
}
答案 2 :(得分:4)
我得到了alll密钥和捆绑存储的价值......
for (String key : bundle.keySet()) {
string += " " + key + " => " + bundle.get(key) + ";";
}
输出:
(key) :(value)
profile_name:abc
答案 3 :(得分:0)
你从Bundle中获得的唯一东西就是你所提供的东西.Bundles是在活动之间传递信息的方式。如果您负责整个应用程序,则不需要在Bundle中查找对象,您应该抓住它们。想想hashmap键......如果你不知道键,那就不像你可以搜索hashmap了。
要将项目放入Bundle并将其传递给下一个活动,您需要将其作为Extra。请查看here,了解通过活动之间的附加内容和捆绑包传递数据的示例。
复制并粘贴在下面:
来自Activity1
Intent intent = new Intent(this,myActivity2.class);
Bundle bundle = new Bundle();
bundle.putString("myValue", myValue);
intent.putExtras(bundle);
navigation.this.startActivity(intent);
在Activity2中
Bundle bundle = getIntent().getExtras();
act2MyValue= bundle.getString("myValue");