アプリのcursorjoinerを作成する予定です。カーソルジョイナーを使用して、表示名と電子メールIDを結合したいと思います。私はAndroid1.6で試しています。
電子メールIDリストを照会すると、次のような例外が発生します。
03-30 13:08:15.609: ERROR/AndroidRuntime(302): Caused by: java.lang.IllegalArgumentException: Invalid column person
私のコードは以下の通りです
String[] projection1 = new String[] {
People._ID,
People.DISPLAY_NAME
} ;
String[] projection2 = new String[] {
Contacts.ContactMethods.PERSON_ID,
Contacts.ContactMethods.DATA
} ;
Cursor cur = cr.query(People.CONTENT_URI, projection1, null, null, null);
Cursor emailCur = cr.query( Contacts.ContactMethods.CONTENT_EMAIL_URI,
projection2,
null, null, null);
PERSON_ID
有効なエントリであると記載されているドキュメントを確認しました。
また、クエリ内のパラメータと同じ列を使用すると、機能します。
emailCur = cr.query( Contacts.ContactMethods.CONTENT_EMAIL_URI,
projection2,
Contacts.ContactMethods.PERSON_ID + " = ?",
new String[]{id}, null);
これを達成するために、投影でどのパラメータを使用すべきかを誰かに教えてもらえますか?