我需要顯示一個自動完成的文本框,它將基本上加載聯繫人的電子郵件ID。 我已經使用自定義適配器嘗試過它,但沒有在文本框中填充。根本沒有建議。任何解決方案都將非常有用。帶有聯繫人的自動完成TextView
5
A
回答
9
嘗試以下操作:
ArrayList<String> emailAddressCollection = new ArrayList<String>();
ContentResolver cr = getContentResolver();
Cursor emailCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, null, 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 textView = (AutoCompleteTextView)findViewById(R.id.YOUR_TEXT_VIEW);
textView.setAdapter(adapter);
}
注:不要忘記將READ_CONTACTS
允許添加到您的Manifest.xml:
<uses-permission android:name="android.permission.READ_CONTACTS" />
+0
我在做類似的事情! stackoverflow.com/questions/12854336/autocompletetextview-backed-by-cursorloader – toobsco42 2012-10-12 08:17:16
0
@Korhan肯定是一個非常優雅的方式比我明白了。我的代碼可行,但@ Korhan's更簡單。謝謝。我創建這個自定義適配器類讀取聯繫人
class ContactListAdapter extends CursorAdapter implements Filterable {
private ContentResolver mCR;
public ContactListAdapter(Context context, Cursor c,boolean a) {
super(context, c, true);
mCR = context.getContentResolver();
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
((TextView) view).setText(cursor.getString(1));
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
final LayoutInflater inflater = LayoutInflater.from(context);
final TextView view = (TextView) inflater.inflate(android.R.layout.simple_dropdown_item_1line, parent, false);
view.setText(cursor.getString(1));
return view;
}
@Override
public String convertToString(Cursor cursor) {
return cursor.getString(1);
}
public Cursor runQueryOnBackgroundThread(CharSequence constraint) {
if (getFilterQueryProvider() != null) {
return getFilterQueryProvider().runQuery(constraint);
}
StringBuilder buffer = null;
String[] args = null;
if (constraint != null) {
buffer = new StringBuilder();
buffer.append("UPPER(");
buffer.append(ContactsContract.CommonDataKinds.Email.ADDRESS);
buffer.append(") GLOB ?");
args = new String[] { constraint.toString().toUpperCase() + "*" };
}
return mCR.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,CreateEventActivity.PEOPLE_PROJECTION ,buffer == null ? null : buffer.toString(), args,
null);
}
}
和主要活動:
MultiAutoCompleteTextView act = (MultiAutoCompleteTextView)findViewById(R.id.attende_list);
ContentResolver content = getContentResolver();
Cursor cursor = content.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,PEOPLE_PROJECTION, null, null, null);
ContactListAdapter adapter = new ContactListAdapter(this, cursor, true);
act.setThreshold(0);
act.setAdapter(adapter);
act.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
相關問題
- 1. 獲取號碼的聯繫人名稱的自動完成textview?
- 2. android自動完成textview和搜索聯繫人列表
- 3. 使用自動完成textview與聯繫人電話號碼
- 4. 自動完成聯繫人文本框
- 5. 如何在android中的自動完成textview中設置聯繫人的號碼?
- 6. Outlook 2010自動完成流(緩存的聯繫人)
- 7. 自動完成功能的聯繫人模塊
- 8. 有關自動完成TextView的查詢
- 9. 帶有SQL數據庫的自動完成TextView
- 10. 展望2013,從自動完成獲取聯繫人列表
- 11. 自動完成的TextView用的AsyncTask和互聯網服務在android系統4
- 12. 帶有自動完成功能的不引人注目的jquery
- 13. 帶有自動完成的不引人注目的jquery
- 14. 我們如何能匹配自動完成文本聯繫人android列表中的listview聯繫人
- 15. 帶有lazyLoading的jQuery自動完成
- 16. 聯繫人名稱的自動完成textview在點擊時獲取他們的號碼?
- 17. 導入聯繫人並自動驗證Infusionsoft中的聯繫人
- 18. 編號從自動完成的TextView
- 19. 小部件自動完成的TextView
- 20. Django內聯自動完成
- 21. 完成不softKeyboard工作在自動完成的TextView在Android中
- 22. Android聯繫人選擇 - 僅限帶數字的聯繫人?
- 23. 自動完成textview不顯示列表
- 24. 自動完成textview谷歌地方API
- 25. Android自動完成TextView下拉寬度
- 26. Android自動完成textview多行
- 27. Android自動完成textview onitemclicklistener不工作
- 28. 刪除自動完成Textview數據
- 29. Android自動完成textview和Cursoradapter
- 30. 如何在android中使用自動完成功能選擇聯繫人號碼?
請發表你的一些代碼,以便我們能夠幫助您更好地 – 2012-08-13 12:31:53
閱讀這篇文章的http:// stackoverflow.com/questions/11879078/search-list-in-our-application-in-android/11879375#11879375這將幫助你 – Akshay 2012-08-13 12:38:47