2012-04-08 63 views
1

我從哪裏可以在自動完成文本視圖獲取聯繫人名稱的代碼,這裏是我的代碼如何在android中的自動完成textview中設置聯繫人的號碼?

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文本像這樣:

[email protected] 

但在這裏我想設置的特定電話號碼,如何解決這個問題?

回答

1

您需要使用setCursorToStringConverter

設置用於過濾光標轉換爲字符串轉換器。 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); 
+0

@Nirupoma薩哈Chaiti請註明的答案是正確的,如果它解決您的問題stackoverflow.com/faq#howtoask - 菲利普·巴蒂斯塔 – 2012-04-23 19:47:17

相關問題