将 Bundle 的内容打印到 Logcat?

新手上路,请多包涵

如果您不记得所有键的名称(即使只打印键名也会很酷),是否有一种简单的方法可以将 Bundle 的内容打印到 Logcat?

原文由 Quasaur 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

Bundle#keySet() 应该可以工作。

 for (String key: bundle.keySet())
{
  Log.d ("myApplication", key + " is a key in the bundle");
}

如果你想获得对象,你可以使用 Bundle#get(String key) (这也在我在答案顶部链接的同一文档中) 。但是,请记住使用通用的 get() 调用:

  • 您正在使用 Object.如果您只是打印到日志, toString() 将被调用,一切都会好起来的。但是,如果你真的想使用密钥对,你需要做 instanceof 检查以避免调用错误的方法。
  • 由于 toString 将被调用,如果您有一个特殊的对象(例如 ArrayLists,或特殊的 Serializable/Parcelable extras),您很可能不会从打印输出中获得任何有用的信息。

原文由 A–C 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以通过打印映射值来获得更具体的信息,如下所示:

 for (String key : bundle.keySet())
{
    Log.d("Bundle Debug", key + " = \"" + bundle.get(key) + "\"");
}

原文由 Phil 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题