Android の Scala での開発に奇妙な問題があります。私は sbt android プラグインを使用しており、現在コンテンツ プロバイダーを機能させようとしていますが...
列の配列を取得する必要があります。ここのチュートリアルとまったく同じようにやっています: http://developer.android.com/guide/topics/providers/content-providers.html
Java の配列コードを Scala のものに置き換えただけです。次のようになります。
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