2012-02-03 53 views
0
String[] ids = new String[]{"1","2","3","4"}; 
Cursor emailCur = getContentResolver().query( 
       ContactsContract.CommonDataKinds.Email.CONTENT_URI, 
       null, 
       ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", 
       ids, null); 

我認爲它應該是包含參數的問題。Android查詢多行:綁定或列索引超出範圍

我試圖把有

String[] ids = new String[]{"(1,2,3,4)"}; 
// or 
String[] ids = new String[]{"('1','2','3','4')"}; 

,並試圖與改變+ " = ?",+ " IN ?",,沒有工作在所有...

我想在ARRAY ID來選擇所有的行,我該怎麼做?

回答

1

我懷疑你要做的事情不容易實現。

說了,我會用你的原始代碼,但改變where子句要解決這個問題:

ContactsContract.CommonDataKinds.Email.CONTACT_ID + " IN(?,?,?,?)" 

你將不得不增加一個?馬克每個值id您要在指定使用for-loop的IN子句

+0

錯過了您的聊天消息。使用ids.length創建一個參數佔位符的字符串。 – Merlin 2012-02-04 00:29:23