Tengo un problema extraño con el desarrollo en Scala en Android. Estoy usando el plugin android de sbt y ahora estoy intentando que los proveedores de contenido funcionen, pero ...Usar constantes de Java de Scala en Android
Necesito obtener una matriz de columnas, y lo hago exactamente como en el tutorial aquí: http://developer.android.com/guide/topics/providers/content-providers.html
Acaba de reemplazar el código de matriz de Java con Scala one. Se ve así:
val projection = Array(
People.NAME,
People.NUMBER
)
Pero entonces, compilador Scala devuelve el error
[error] /home/exine/proj/hello-world/src/main/scala/Activity.scala:12: value NAME is not a member of object android.provider.Contacts.People
[error] People.NAME,
[error] ^
[error] one error found
Y en realidad es miembro de este objeto, y se define en android.provider.Contacts.PeopleColumns interfaz (que es implementado por People). También intenté obtenerlo directamente de PeopleColumns sin éxito (el mismo error). ¿Obtener constantes de Java en Scala es algo diferente o acabo de cometer un estúpido error en alguna parte?
ACTUALIZACIÓN:
Siguiente problema. Al usar ContactsContract, el error de los contactos se mantiene igual, y cuando intento otro método, no puedo acceder a ContactsContract.ContactsColumns directamente porque es una interfaz protegida.
[error] /home/exine/proj/hello-world/src/main/scala/Activity.scala:13: object ContactsColumns cannot be accessed in object android.provider.ContactsContract
[error] ContactsColumns.LOOKUP_KEY,
[error] ^
[error] one error found
Por ahora, la mejor solución posible sería escribir todo el código de consulta como clase en java, y luego llamarlo. Implica mezclar idiomas, aumenta la complejidad y es algo que no me gusta, sin embargo. – exine