繁体   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