我如何知道捆绑包中提供了哪些数据?

我有一段时间想通过Intent / Bundle来判断哪些数据来自我的方法。 我已经尝试添加断点来检查数据,但我什么也没有看到。 也许是因为这是一个Parcelable我不能在Eclipse中手动读取它。

例如, Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI)onActivityResult(int requestCode, int resultCode, Intent data) Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI) 。 我如何知道有哪些数据可用? 注意,我没有要求提供什么数据,但是我怎么知道这个数据,所以我可以将相同的想法应用到Android框架的Bundle / Intent ? 也许这是一个简单的看文档,但我没有看到数据的完整列表,我不能在Eclipse中看到它。 所以我迷失了方向

帮帮我? 干杯

Solutions Collecting From Web of "我如何知道捆绑包中提供了哪些数据?"

Bundle.keySet()给你一个包中所有键的列表。 这就是说,通常你只是期望某些键和查询它们,但是keySet()对于检查你从某个地方得到的bundle是有用的。

 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; } 

我得到所有的密钥和价值捆绑存储…

 for (String key : bundle.keySet()) { string += " " + key + " => " + bundle.get(key) + ";"; } 

输出:

 (key) :(value) profile_name:abc 

你从Bundle中得到的唯一东西就是你放入的东西。Bundles是在活动之间传递信息的方式。 如果你负责你的整个应用程序,你不需要在Bundle里面查看你的对象,你应该抓住它们。 认为hashmap键…如果你不知道密钥,它不像你可以searchhashmap。

要将一个项目放入Bundle并将其传递给下一个活动,您需要将其作为Extra。 看看这里的活动之间通过额外和捆绑传递数据的例子。

复制并粘贴在下面:

从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“);