दिलचस्प पोस्ट
मैं बैकबोन में एक मॉडल कैसे ला सकता हूं? मैं कैसे PHP विस्तार intl सक्षम कर सकते हैं? JQuery के माध्यम से दिनांक स्ट्रिंग प्रारूप को मान्य करने का सर्वोत्तम तरीका इन सभी OpenCV पायथन इंटरफेस के बीच क्या अलग है? इंटेलिजेंस विज़ुअल स्टूडियो 2012 में जावास्क्रिप्ट के लिए काम नहीं करता है एएसपी.नेट वेब एपीआई का प्रयोग करने से सत्र का उपयोग करना रेल: कैसे और के बजाय चेन स्कोप प्रश्नों के साथ या? वाक्य में स्प्लिट स्ट्रिंग मैं सरणी में डुप्लिकेट आइटम की घटना को कैसे भांपूं? मैं जावा में एक सरणी से ऑब्जेक्ट कैसे निकालूं? फ़िल्टरिंग में LINQ और इकाई फ़्रेमवर्क में आइटम शामिल हैं पायथन में और ऑपरेटर को ओवरराइड करने का कोई भी तरीका? मक्खी पर एक php ऑब्जेक्ट में एक नई विधि कैसे जोड़ें? टेक्सटेरा में चयनित पाठ कैसे प्राप्त करें? थ्रॉफ्ट बनाम प्रोटोकॉल बफर के सबसे बड़े अंतर?

स्वत: पूर्ण पाठदृश्य से संपर्क का चयन करना

मैं एसएमएस भेजने के लिए स्वत: पूर्ण पाठदृश्य का उपयोग करके संपर्क का चयन करना चाहता हूं। मैंने लगभग हासिल किया है जो मुझे चाहिए, लेकिन एक मिनट की समस्या के लिए क्योंकि आप छवि में देख सकते हैं। मैं यह कैसे हल कर सकता हूँ?

activity_contact_with_auto.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <AutoCompleteTextView android:id="@+id/mmWhoNo" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="To...." > </AutoCompleteTextView> </LinearLayout> 

custcontview.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <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="#A5000000" /> <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="#A5000000" /> <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="#A5000000" /> </LinearLayout> 

कोड

 public class ContactWithAuto extends Activity { private ArrayList<Map<String, String>> mPeopleList; private SimpleAdapter mAdapter; private AutoCompleteTextView mTxtPhoneNo; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_contact_with_auto); mPeopleList = new ArrayList<Map<String, String>>(); 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); } 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) > 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<String, String> NamePhoneType = new HashMap<String, String>(); 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<?> av, View v, int index, long arg){ Map<String, String> map = (Map<String, String>) av.getItemAtPosition(index); Iterator<String> myVeryOwnIterator = map.keySet().iterator(); while(myVeryOwnIterator.hasNext()) { String key=(String)myVeryOwnIterator.next(); String value=(String)map.get(key); mTxtPhoneNo.setText(value); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_contact_with_auto, menu); return true; } } 

छवि

स्क्रीनशॉट

Solutions Collecting From Web of "स्वत: पूर्ण पाठदृश्य से संपर्क का चयन करना"

स्वत: पूर्ण पाठ विच के लिए एक ऑन आईटैमक्लिकलिस्ट को एक अलग फ़ंक्शन के रूप में रखने के बजाय जोड़ें।

  mTxtPhoneNo.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> av, View arg1, int index, long arg3) { Map<String, String> map = (Map<String, String>) av.getItemAtPosition(index); String name = map.get("Name"); String number = map.get("Phone"); mTxtPhoneNo.setText(""+name+"<"+number+">"); } }); 

या अपनी गतिविधि और सेट के लिए OnItemClickListener को कार्यान्वित करें

 mTxtPhoneNo.setOnItemClickListener(this); 

आपके वर्तमान में आउटपुट हैशैप.स्टोस्टिंग विधि का मानक आउटपुट लगता है। इसलिए, आपको अपने हीशमैप के कार्यान्वयन और स्ट्रिंग विधि को ओवरराइड करना चाहिए।

एक AutoCompeleteTextView के साथ यह उपयोगी हो सकता है कि क्या @ user936414 ने कहा, लेकिन यह समस्या पैदा कर सकता है यदि आपके पास सबसे बड़ा ऐप है, तो एक बहुअटोकंपेलेटेक्स्टव्यू के साथ भी अधिक है, इसलिए इसे "कस्टम" हैशमैक्स बनाकर स्ट्रिंग मेथोड को ओवरड्राइड करने की सिफारिश की गई है:

 public class ContactMap extends HashMap<String, String> { /* * (non-Javadoc) * * @see java.util.AbstractMap#toString() */ @Override public String toString() { if (isEmpty()) { return "{}"; } StringBuilder buffer = new StringBuilder(size() * 28); Iterator<Map.Entry<String, String>> it = entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, String> entry = it.next(); Object key = entry.getKey(); if (key == "Name") { Object value = entry.getValue(); buffer.append(value); } else { if (key == "Phone") buffer.append("<"); Object value = entry.getValue(); if (value != this) { buffer.append(value); } else { buffer.append("(this Map)"); } if (key == "Phone") buffer.append(">"); } } return buffer.toString(); } } 

और इसे इस तरह प्रयोग करें

  // Using our custom HashMap ContactMap NamePhoneType = new ContactMap();