簡體   English   中英

如何在android自動完成textview中設置聯系人號碼?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM