Print the contents of a Bundle to Logcat?

Quasaur picture Quasaur · Feb 19, 2013 · Viewed 32.5k times · Source

Is there an easy way to print the contents of a Bundle to Logcat if you can't remember the names of all the keys (even being able to print just the key names would be cool)?

Answer

A--C picture A--C · Feb 19, 2013

Bundle#keySet() should work.

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

And if you want to get the Object, you can use Bundle#get(String key)(which is also in the same documentation I linked at the top of my answer). However, keep in mind using the generic get() call:

  • You're working with Object. If you're simply printing to a Log, toString() will be invoked and all will be fine. However, if you actually want to use the key's pair, you need to do instanceof checks to avoid calling the wrong method.
  • Since toString will be invoked, if you have a special Object (eg ArrayLists, or special Serializable/Parcelable extras) you're most likely not going to get anything useful from the printout.