将捆绑包的内容打印到 Logcat?

2022-08-31 12:48:14

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


答案 1

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

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

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

  • 您正在使用对象。如果您只是简单地打印到日志,将被调用并且一切都会好起来的。但是,如果您确实要使用密钥对,则需要进行检查以避免调用错误的方法。toString()instanceof
  • 由于将调用toString,因此如果您有一个特殊的对象(例如ArrayLists或特殊的Serializable/Parcelable附加项),您很可能不会从打印输出中获得任何有用的东西。

答案 2

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

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

推荐