2017-06-09 5 views
0

アンドロイドデバイスのContactsContractテーブルから連絡先のLOOKUP_KEY値をチェックして選択する必要があります。contentResolver.query()内でselectionArgs []を使用する方法

多くのLOOKUP値を渡す単一のクエリを実行する必要があります。 は、これまでのところ私はあなたがbeloewを参照してくださいコードのような何かをした、もちろんそれは正しくありません:

Cursor cursor = contentResolver.query(
             ContactsContract.Contacts.CONTENT_URI, 
             null, 
             ContactsContract.Contacts.LOOKUP_KEY + " =?", 
             new String[] {"f2hsk", "djkf7fk", "hf74fnk2"}, 
             null); 

私はContactsContract.Contacts.LOOKUP_KEY +を使用しても試してみました「の?」私はシンタックスエラーが発生します。

私は達成しなければならないことが明確であることを願っています。

は各questionmarkがselectionArgs配列から対応するパラメータ値に置き換えされようとしている事前

+0

純粋なSQLでこれをどのように書きますか? –

+0

私は次のように記述します:SELECT x from FROM y WHERE z IN(value1、value2、etc.);正しいのではないですか? – MDP

答えて

0

でいただきありがとうございます。

Cursor cursor = contentResolver.query(
             ContactsContract.Contacts.CONTENT_URI, 
             null, 
             ContactsContract.Contacts.LOOKUP_KEY + "=? or " + ContactsContract.Contacts.LOOKUP_KEY + "=? or " + ContactsContract.Contacts.LOOKUP_KEY + "=?", 
             new String[] {"f2hsk", "djkf7fk", "hf74fnk2"}, 
             null); 
+0

ありがとうございます。ですから、100個のselectArgを持っていればContactsContracts.Contacts.LOOKUP_KEY + "=?"または "... "クリーン "ではないようです – MDP

+0

いいえ、それはどのように' selectionArgs'をクエリ。 'IN'条件については、[この回答](https://stackoverflow.com/a/23795007/321106)を参照してください。 – artkoenig

関連する問題