Note that there are some explanatory texts on larger screens.

plurals
  1. POWhy Only One contact selected in AutoCompleteTextView?
    text
    copied!<p>I want to select multiple contact from autocompletetextview. But right now I can able to select only one contact .</p> <p>Code is below.</p> <p><strong>MainActivity.java</strong></p> <pre><code>public class MainActivity extends Activity { private ArrayList&lt;Map&lt;String, String&gt;&gt; mPeopleList; private SimpleAdapter mAdapter; private AutoCompleteTextView mTxtPhoneNo; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mPeopleList = new ArrayList&lt;Map&lt;String, String&gt;&gt;(); PopulatePeopleList(); mTxtPhoneNo = (AutoCompleteTextView) findViewById(R.id.mmWhoNo); mAdapter = new SimpleAdapter(this, mPeopleList, R.layout.custcontview, new String[] { "Name", "Phone", "Type" }, new int[] { R.id.ccontName, R.id.ccontNo, R.id.ccontType }); mTxtPhoneNo.setAdapter(mAdapter); mTxtPhoneNo.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView&lt;?&gt; av, View arg1, int index, long arg3) { Map&lt;String, String&gt; map = (Map&lt;String, String&gt;) av.getItemAtPosition(index); String name = map.get("Name"); String number = map.get("Phone"); mTxtPhoneNo.setText(""+name+"&lt;"+number+"&gt;"); } }); } public void PopulatePeopleList() { mPeopleList.clear(); Cursor people = getContentResolver().query( ContactsContract.Contacts.CONTENT_URI, null, null, null, null); while (people.moveToNext()) { String contactName = people.getString(people .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); String contactId = people.getString(people .getColumnIndex(ContactsContract.Contacts._ID)); String hasPhone = people .getString(people .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); if ((Integer.parseInt(hasPhone) &gt; 0)){ // You know have the number so now query it like this Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null); while (phones.moveToNext()){ //store numbers and display a dialog letting the user select which. String phoneNumber = phones.getString( phones.getColumnIndex( ContactsContract.CommonDataKinds.Phone.NUMBER)); String numberType = phones.getString(phones.getColumnIndex( ContactsContract.CommonDataKinds.Phone.TYPE)); Map&lt;String, String&gt; NamePhoneType = new HashMap&lt;String, String&gt;(); NamePhoneType.put("Name", contactName); NamePhoneType.put("Phone", phoneNumber); if(numberType.equals("0")) NamePhoneType.put("Type", "Work"); else if(numberType.equals("1")) NamePhoneType.put("Type", "Home"); else if(numberType.equals("2")) NamePhoneType.put("Type", "Mobile"); else NamePhoneType.put("Type", "Other"); //Then add this map to the list. mPeopleList.add(NamePhoneType); } phones.close(); } } people.close(); startManagingCursor(people); } public void onItemClick(AdapterView&lt;?&gt; av, View v, int index, long arg){ Map&lt;String, String&gt; map = (Map&lt;String, String&gt;) av.getItemAtPosition(index); Iterator&lt;String&gt; myVeryOwnIterator = map.keySet().iterator(); while(myVeryOwnIterator.hasNext()) { String key=(String)myVeryOwnIterator.next(); String value=(String)map.get(key); mTxtPhoneNo.setText(value); } } } </code></pre> <p><strong>activity_main.xml</strong></p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" &gt; &lt;AutoCompleteTextView android:id="@+id/mmWhoNo" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="To...." android:textColor="#A5AA0000" &gt; &lt;/AutoCompleteTextView&gt; &lt;/LinearLayout&gt; </code></pre> <p><strong>custcontview.xml</strong></p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" &gt; &lt;TextView android:id="@+id/ccontName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="#A5AA0000" /&gt; &lt;TextView android:id="@+id/ccontNo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@id/ccontName" android:text="Medium Text" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#A5AA0000" /&gt; &lt;TextView android:id="@+id/ccontType" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/ccontNo" android:layout_alignParentRight="true" android:layout_marginRight="14dp" android:text="Small Text" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="#A5AA0000" /&gt; &lt;/LinearLayout&gt; </code></pre> <p><strong>AndroidManifest.xml</strong></p> <pre><code>&lt;uses-permission android:name="android.permission.READ_CONTACTS"/&gt; </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload