私は、EditText、Button、およびListViewをmain.xmlファイルに追加しました。ユーザーはフルネームまたは名前のアルファベットを入力し、ボタンをクリックします。ボタンクリックイベントは、ユーザクエリに対応する連絡先リストに存在するすべての名前と電話番号を表示します。コンテンツプロバイダ例外をスローする
これは、onClickの機能のために私のコードです:
Uri lookupUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_FILTER_URI, editText.getText().toString());
Cursor idCursor = getContentResolver().query(lookupUri, null, null, null, null);
startManagingCursor(idCursor);
String wherestmt = ContactsContract.Data.CONTACT_ID + " = " + idCursor + " And " + ContactsContract.Data.MIMETYPE + " = " + ContactsContract.CommonDataKinds.Phone.CONTENT_URI + "'";
Cursor datacursor = getContentResolver().query(ContactsContract.Data.CONTENT_URI,null,wherestmt,null,null);
int nameIdx = datacursor.getColumnIndexOrThrow(ContactsContract.Data.DISPLAY_NAME);
int phoneIdx = datacursor.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER);
datacursor.moveToFirst();
list = new ArrayList<String>();
do{
String name = datacursor.getString(nameIdx);
String phone = datacursor.getString(phoneIdx);
list.add(name + " " + phone);
}while(datacursor.moveToNext());
ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,list);
listView.setAdapter(adapter);
しかし、私は行を次のように例外を取得しています:
Cursor datacursor = getContentResolver().query(ContactsContract.Data.CONTENT_URI,null,wherestmt,null,null);
例外のようなものを伝えます:
android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
FATAL EXCEPTION: main E/AndroidRuntime(1287): android.database.sqlite.SQLiteException: near "@412c63d0": syntax error: ,[email protected] And mimetype = 'content://com.android.contacts/data/phones')) 04-01 13:48:46.616: E/AndroidRuntime(1287): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:179) 04-01 13:48:46.616: E/AndroidRuntime(1287): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
任意のヘルプ??????? – WhoAmI