No voy a desgastar la frase de kriogeN
String es un tipo y boolean es otro. Una String es una cadena de caracteres arbitrarios, un booleano tiene sólo dos valores, verdadero o falso.
Si quieres una expresión que valga verdadero si la String tiene por texto "true" (que es lo más feo del mundo), sería
"true".equals(estado)
Es decir, en tu ejemplo setChecked("true".equals(estado))
Pero es muy feo guardar una String que ponga el texto "true" cuando existen los tipos boolean.
