Próbowałem różnych sposobów, aby to naprawić, ale nie jestem w stanie tego naprawić. Próbuję uzyskać wartość logiczną danego Object przekazywane wewnątrz tej metody pole wyboru:Jak uzyskać wartość typu Boolean z obiektu
public boolean onPreferenceChange(Preference preference, Object newValue)
{
final String key = preference.getKey();
referenceKey=key;
Boolean changedValue=!(((Boolean)newValue).booleanValue()); //ClassCastException occurs here
}
uzyskać:
java.lang.ClassCastException: java.lang.String mogą nie być oddanych do java.lang.Boolean
Najpierw przyjmuje się, że nowa wartość jest typu Boolean. Możesz użyć instanceof, aby sprawdzić typ newValue. Jeśli jest to boolean, z autounboxingiem, nie masz problemu. Jeśli jest to ciąg znaków, możesz porównać (ignorując wielkość liter) wartości "true", "false", a następnie utworzyć odpowiednią reprezentację boolowską. – horbags