He intentado diferentes maneras de arreglar esto, pero no puedo solucionarlo. Estoy tratando de obtener el valor booleano de un objeto pasado dentro de este método de una casilla de verificación:Cómo obtener el valor booleano del objeto
public boolean onPreferenceChange(Preference preference, Object newValue)
{
final String key = preference.getKey();
referenceKey=key;
Boolean changedValue=!(((Boolean)newValue).booleanValue()); //ClassCastException occurs here
}
me sale:
java.lang.ClassCastException: java.lang.String no puede ser echado a java.lang.Boolean
Primero está asumiendo que newValue es de tipo Boolean. Puede usar instanceof para verificar el tipo de newValue. Si es un booleano, con autounboxing, no tiene ningún problema. Si es una cadena, puede comparar (ignorando mayúsculas y minúsculas) los valores "verdadero", "falso" y luego crear la representación booleana apropiada. – horbags