CONTACTS電子メールアドレスの一致する選択肢を入力する可能性のあるフォームにAutoCompleteTextViewフィールドを作成しています。連絡先電子メールのAutoCompleteTextViewがLIKEを正常に動作させることができない
ここでいくつかの古い例を見つけることができました(これは償却されたコードをたくさん持っています...もっと新しいものではありません)。しかし試行錯誤の中で私はそれを最初の文字にマッチさせることができました。私がタイプする電子メールアドレス...私は正確にどのように動作するのかについて100%理解していませんが、
私が本当にやりたいことは、ファイルの電子メールアドレスにも一致するものがあることです。私はそれを理解したように、私は、クエリでLIKEコマンドを使用する必要が
など、[email protected]
[email protected]
、[email protected]
、[email protected]
:それは私がgma
を入力した場合、私はそれを表示したいと思い、です。しかし、どのように書式を設定しても、同じ結果が得られます...電子メールアドレスの先頭にのみ一致します。ここではLIKEと私の現在のコードの試みがある
....
ArrayList<String> emailAddressCollection = new ArrayList<String>();
ContentResolver cr = getContentResolver();
String[] projection={ContactsContract.CommonDataKinds.Email.DATA};
Cursor emailCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, projection, ContactsContract.CommonDataKinds.Email.ADDRESS + " LIKE '%A%'", null, null);
while (emailCur.moveToNext())
{
String email = emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
emailAddressCollection.add(email);
}
emailCur.close();
String[] emailAddresses = new String[emailAddressCollection.size()];
emailAddressCollection.toArray(emailAddresses);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, emailAddresses);
AutoCompleteTextView actextView = (AutoCompleteTextView)findViewById(idTo);
actextView.setAdapter(adapter);
私がここで行方不明です何を任意のアイデア?
また、私のドロップダウンリストには、もう少し関連した質問があります。メールアドレスとそのレコードに記載されているNAMEを表示し、選択時にメールアドレスを返すだけです。
このコードを使用してこれを行うことはできますか、それとも別のものを見る必要がありますか?
いいえ、AutoCompleteTextViewは、デフォルトでは開始文字 "' 'に基づいて一致するようにデフォルトで設計されていますが、使用されている' 'Adapter'(より正確には' 'Filter''その「アダプタ」によって) – pskink
それでは、アダプタの問題、フィルタの問題、または何か他の問題がありますか?私はこれを行うことができます知っている、電子メールアドレスの任意の部分を入力すると、GMAILアプリケーションでもそれを行います。 – Peter
@Peterは 'SimpleCursorAdapter'を使用し、その' FilterQueryProvider'を設定します – pskink