¿Comprueba si dos objetos Bundle son iguales en Android?

Me gustaría comprobar si dos paquetes son iguales, ¿hay alguna manera de hacer que en lugar de comprobarlos clave por clave?

Aquí hay una manera de probar si dos paquetes son los mismos:

  • Compruebe sus tamaños, no se moleste si no son iguales
  • Si ambos valores son objetos Bundle, utilice la recursión
  • Debido a que un valor para una clave en one puede ser null , asegúrese de que ambos valores son null y que la clave realmente existe en two
  • Finalmente, compare los valores de las claves coincidentes

Código:

 public boolean equalBundles(Bundle one, Bundle two) { if(one.size() != two.size()) return false; Set<String> setOne = one.keySet(); setOne.addAll(two.keySet()); Object valueOne; Object valueTwo; for(String key : setOne) { if (!one.containsKey(key) || !two.containsKey(key)) return false; valueOne = one.get(key); valueTwo = two.get(key); if(valueOne instanceof Bundle && valueTwo instanceof Bundle && !equalBundles((Bundle) valueOne, (Bundle) valueTwo)) { return false; } else if(valueOne == null) { if(valueTwo != null) return false; } else if(!valueOne.equals(valueTwo)) return false; } return true; } 
 private static boolean equalsBundles(Bundle a, Bundle b) { Set<String> aks = a.keySet(); Set<String> bks = b.keySet(); if (!aks.containsAll(bks)) { return false; } for (String key : aks) { if (!a.get(key).equals(b.get(key))) { return false; } } return true; } 
  • Problema de Bundle.putExtra con android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.