我在 Android 上使用 Scala 开发时遇到了一个奇怪的问题。我正在使用 sbt android 插件,现在我正在尝试让内容提供商工作,但是......
我需要获取列数组,我的做法与此处的教程完全一样:http: //developer.android.com/guide/topics/providers/content-providers.html
刚刚用 Scala 替换了 Java 的数组代码。它看起来像这样:
val projection = Array(
People.NAME,
People.NUMBER
)
但是,scala 编译器返回错误
[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
实际上它是这个对象的成员,它定义在接口 android.provider.Contacts.PeopleColumns 中(由 People 实现)。我也尝试过直接从 PeopleColumns 获取它,但没有任何成功(同样的错误)。在 Scala 中从 Java 获取常量是否有所不同,或者我只是在某个地方犯了一个愚蠢的错误?
更新:
下一个问题。使用 ContactsContract.Contacts 时错误保持不变,并且在尝试另一种方法时,我无法直接访问 ContactsContract.ContactsColumns,因为它是受保护的接口。
[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