Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> 自動匹配的聯系人多選框

自動匹配的聯系人多選框

編輯:Android開發實例

 

  1. /***   
  2. * AndroidManifest.xml   
  3. *   
  4. <uses-permission android:name=\"android.permission.READ_CONTACTS\"/>   
  5.  
  6.  
  7. /***   
  8. * AutoMultipleContacts.java   
  9. *   
  10.  
  11. import android.app.Activity;   
  12. import android.content.ContentResolver;   
  13. import android.content.Context;   
  14. import android.database.Cursor;   
  15. import android.os.Bundle;   
  16. import android.provider.Contacts;   
  17. import android.view.LayoutInflater;   
  18. import android.view.View;   
  19. import android.view.ViewGroup;   
  20. import android.widget.CursorAdapter;   
  21. import android.widget.Filterable;   
  22. import android.widget.MultiAutoCompleteTextView;   
  23. import android.widget.TextView;   
  24.  
  25. public class AutoMultipleContacts extends Activity {   
  26.  
  27. @Override   
  28. public void onCreate(Bundle savedInstanceState) {   
  29. super.onCreate(savedInstanceState);   
  30. setContentView(R.layout.multipleselect);   
  31.  
  32. Cursor peopleCursor = getContentResolver().query(Contacts.People.CONTENT_URI, PEOPLE_PROJECTION, null, null, Contacts.People.DEFAULT_SORT_ORDER);   
  33. ContactListAdapter contactadapter = new ContactListAdapter(this,peopleCursor);   
  34.  
  35. MultiAutoCompleteTextView textView = (MultiAutoCompleteTextView) findViewById(R.id.contacts);   
  36. textView.setAdapter(contactadapter);   
  37. textView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());   
  38. }   
  39.  
  40.  
  41. public static class ContactListAdapter extends CursorAdapter implements Filterable {   
  42. public ContactListAdapter(Context context, Cursor c) {   
  43. super(context, c);   
  44. mContent = context.getContentResolver();   
  45. }   
  46.  
  47. @Override   
  48. public View newView(Context context, Cursor cursor, ViewGroup parent) {   
  49. final LayoutInflater inflater = LayoutInflater.from(context);   
  50. final TextView view = (TextView) inflater.inflate(   
  51. android.R.layout.simple_dropdown_item_1line, parent, false);   
  52. view.setText(cursor.getString(5));   
  53. return view;   
  54. }   
  55.  
  56. @Override   
  57. public void bindView(View view, Context context, Cursor cursor) {   
  58. ((TextView) view).setText(cursor.getString(5));   
  59. }   
  60.  
  61. @Override   
  62. public String convertToString(Cursor cursor) {   
  63. return cursor.getString(5);   
  64. }   
  65.  
  66. @Override   
  67. public Cursor runQueryOnBackgroundThread(CharSequence constraint) {   
  68. if (getFilterQueryProvider() != null) {   
  69. return getFilterQueryProvider().runQuery(constraint);   
  70. }   
  71.  
  72. StringBuilder buffer = null;   
  73. String[] args = null;   
  74. if (constraint != null) {   
  75. buffer = new StringBuilder();   
  76. buffer.append(\"UPPER(\");   
  77. buffer.append(Contacts.ContactMethods.NAME);   
  78. buffer.append(\") GLOB ?\");   
  79. args = new String[] { constraint.toString().toUpperCase() + \"*\" };   
  80. }   
  81.  
  82. return mContent.query(Contacts.People.CONTENT_URI, PEOPLE_PROJECTION,   
  83. buffer == null ? null : buffer.toString(), args,   
  84. Contacts.People.DEFAULT_SORT_ORDER);   
  85. }   
  86.  
  87. private ContentResolver mContent;   
  88. }   
  89.  
  90. private static final String[] PEOPLE_PROJECTION = new String[] {   
  91. Contacts.People._ID,   
  92. Contacts.People.PRIMARY_PHONE_ID,   
  93. Contacts.People.TYPE,   
  94. Contacts.People.NUMBER,   
  95. Contacts.People.LABEL,   
  96. Contacts.People.NAME,   
  97. };   
  98.  
  99. }   
  100.  
  101.  
  102.  
  103.  
  104.  
  105. /***   
  106. * res/layout/multipleselect.xml   
  107. *   
  108.  
  109. <?xml version=\"1.0\" encoding=\"utf-8\"?>   
  110. <LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"   
  111. android:orientation=\"vertical\"   
  112. android:layout_width=\"fill_parent\"   
  113. android:layout_height=\"fill_parent\"   
  114. >   
  115.  
  116. <LinearLayout   
  117. android:layout_width=\"fill_parent\"   
  118. android:layout_height=\"wrap_content\"   
  119. android:gravity=\"center_vertical\">   
  120.  
  121. <MultiAutoCompleteTextView   
  122. android:id=\"@+id/contacts\"   
  123. android:textSize=\"18sp\"   
  124. android:layout_margin=\"8px\"   
  125. android:layout_width=\"0px\"   
  126. android:layout_height=\"wrap_content\"   
  127. android:layout_weight=\"1\" />   
  128.  
  129. </LinearLayout>   
  130. </LinearLayout>  

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved