[英]How to set a contact's number in an auto complete textview in android?
我有一個代碼,可以在自動完成文本視圖中獲取聯系人姓名,這是我的代碼
autoContacts=(AutoCompleteTextView)findViewById(R.id.actvContacts);
Cursor emailCursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
startManagingCursor(emailCursor);
autoContacts.setAdapter(new SimpleCursorAdapter(this, android.R.layout.simple_dropdown_item_1line, emailCursor, new String[] {Email.DATA1}, new int[] {android.R.id.text1}));
autoContacts.setThreshold(0);
但是當我單擊其中一個名稱時,它會在自動完成 textview 中設置一個文本,如下所示:
android.content.ContentResolver$CursorWrapperInner@44efc9c8
但是這里我想在上面設置具體的電話號碼,如何解決這個問題?
您需要使用 setCursorToStringConverter
設置用於將過濾 Cursor 轉換為 String 的轉換器。 http://developer.android.com/reference/android/widget/SimpleCursorAdapter.html
在您的情況下,您可以執行以下操作:
String[] from = new String[] {
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER
};
autoContacts=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
Cursor emailCursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
startManagingCursor(emailCursor);
SimpleCursorAdapter adapter =new SimpleCursorAdapter(this, android.R.layout.simple_dropdown_item_1line, emailCursor, from, new int[] {android.R.id.text1});
adapter.setCursorToStringConverter(new CursorToStringConverter() {
@Override
public CharSequence convertToString(Cursor cursor) {
final int columnIndex = cursor.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER);
final String str = cursor.getString(columnIndex);
return str;
}
});
autoContacts.setAdapter(adapter);
autoContacts.setThreshold(0);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.