2013-09-01 6 views
5

में उतारने का मैं बहुत जीमेल या फेसबुक दूत की तरह मैदान में करने के लिए बुलबुले जोड़ने के साथ संघर्ष कर रहा हूँ जीमेल की तरह अंतरिक्ष tokenizer साथ multiautocompletetextview में ठीक से हटा दें। ऊपर चित्र मुझे कुछ कार्यान्वयन के लिए इस sample project वे दे दिया है कोड का उपयोग कर काम किया है के कार्यान्वयन के लिए तो नीचे इस तस्वीर पर गौर कृपया .. enter image description hereकैसे जोड़ें और संपर्क बुलबुले एंड्रॉयड

लेकिन मैं अंतरिक्ष का मतलब है कि मैं प्रयोग किया जाता है के साथ एक बुलबुले विभाजित करने की आवश्यकता अंतरिक्ष टोकननाइज़र। तो अपने काम करता है ठीक है, लेकिन मेरी समस्या है अगर मैं में संपर्क क्षेत्र के लिए जीमेल में आम तौर पर मैदान में जोड़ने पर रख कर रहा हूँ ऊपर बढ़ रहा है और संपर्क सूची में सबसे सूचीदृश्य पूरी तरह से दिखा। लेकिन मेरे मामले में सूचीदृश्य अधिकतम संपर्क जोड़ने के बाद नहीं दिखा रहा है और यह भी अगर मैं उस नाम के लिए NAME संपर्कों के बड़े लंबाई जोड़ने के कई बुलबुले स्वचालित रूप से इसे जोड़ रहा है। और एक और समस्या 2.2 संस्करण मोबाइल में है, मैं संपर्क बबल के बीच या उसके बाद कर्सर को देखने में असमर्थ हूं। मैन्युअल रूप से मुझे संपर्क बुलबुले पर क्लिक करने की आवश्यकता है। मैं इस link से कुछ समाचार नहीं मिला है, लेकिन मैं इस https://android.googlesource.com/platform/frameworks/ex/+/refs/heads/master/chips से पूरा कोड आयात करने में असमर्थ हूँ। इतनी सारी निर्भरताएं हैं और सभी परियोजनाएं आयात कर रही हैं। कृपया उपर्युक्त समस्या के लिए मुझे कोई समाधान बताएं। किसी भी नमूने भी यहां पोस्ट करें ..

+1

'chip' के लिए एक अलग शब्द को खोजने के लिए प्रयास करें। मुझे नहीं पता कि एक चिप क्या है, "फ्रेंच फ्राई" या आलू कुरकुरा के लिए अमेरिकी नाम के उचित नाम के अलावा। – Simon

+0

पृष्ठभूमि में स्पैन करने योग्य स्ट्रिंग की पृष्ठभूमि छवि चिप के रूप में कहा जाता है। किसी भी तरह से मैंने चिप पाठ को बबल में बदल दिया। मुझे लगता है कि अधिकांश एंड्रॉइड डेवलपर्स बहुआयामी टेक्स्टव्यू के साथ चिप या बबल के बारे में जानेंगे। अगर कोई विचार है तो कृपया मुझे समाधान के बारे में बताएं .. @ साइमन – AndroidDev

उत्तर

7

मैं हमारे समाधान TokenAutoComplete on github मुक्त-स्रोत बना। मेरा परीक्षण 2.2 पर वापस किया गया है। मैंने अपने कोड को बहुत सरल कार्यान्वयन और अनुकूलन की अनुमति देने के लिए डिज़ाइन किया है। मुझे यकीन नहीं है कि यह आपके प्रश्न का काफी उत्तर देता है, लेकिन यह चिप्स स्रोत कोड की तुलना में बेहतर प्रारंभिक बिंदु हो सकता है।

यहाँ मेरी लाइब्रेरी का उपयोग कर एक उदाहरण दिया गया है:

उपवर्ग TokenCompleteTextView contact_token के लिए

public class ContactsCompletionView extends TokenCompleteTextView { 
    public ContactsCompletionView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    @Override 
    protected View getViewForObject(Object object) { 
     Person p = (Person)object; 

     LayoutInflater l = (LayoutInflater)getContext().getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
     LinearLayout view = (LinearLayout)l.inflate(R.layout.contact_token, (ViewGroup)ContactsCompletionView.this.getParent(), false); 
     ((TextView)view.findViewById(R.id.name)).setText(p.getEmail()); 

     return view; 
    } 

    @Override 
    protected Object defaultObject(String completionText) { 
     //Stupid simple example of guessing if we have an email or not 
     int index = completionText.indexOf('@'); 
     if (index == -1) { 
      return new Person(completionText, completionText.replace(" ", "") + "@example.com"); 
     } else { 
      return new Person(completionText.substring(0, index), completionText); 
     } 
    } 
} 

लेआउट कोड (अगर लेआउट के किसी भी प्रकार का उपयोग कर सकते या में एक imageView फेंक अगर आप में छवियों चाहते सकता है टोकन)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"> 

    <TextView android:id="@+id/name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/token_background" 
     android:padding="5dp" 
     android:textColor="@android:color/white" 
     android:textSize="18sp" /> 

</LinearLayout> 

टोकन backgound drawable

<shape xmlns:android="http://schemas.android.com/apk/res/android" > 
    <solid android:color="#ffafafaf" /> 
    <corners 
     android:topLeftRadius="5dp" 
     android:bottomLeftRadius="5dp" 
     android:topRightRadius="5dp" 
     android:bottomRightRadius="5dp" /> 
</shape> 

व्यक्ति वस्तु कोड

public class Person implements Serializable { 
    private String name; 
    private String email; 

    public Person(String n, String e) { name = n; email = e; } 

    public String getName() { return name; } 
    public String getEmail() { return email; } 

    @Override 
    public String toString() { return name; } 
} 

नमूना गतिविधि

public class TokenActivity extends Activity { 
    ContactsCompletionView completionView; 
    Person[] people; 
    ArrayAdapter<Person> adapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     people = new Person[]{ 
       new Person("Marshall Weir", "[email protected]"), 
       new Person("Margaret Smith", "[email protected]"), 
       new Person("Max Jordan", "[email protected]"), 
       new Person("Meg Peterson", "[email protected]"), 
       new Person("Amanda Johnson", "[email protected]"), 
       new Person("Terry Anderson", "[email protected]") 
     }; 

     adapter = new ArrayAdapter<Person>(this, android.R.layout.simple_list_item_1, people); 

     completionView = (ContactsCompletionView)findViewById(R.id.searchView); 
     completionView.setAdapter(adapter); 
     completionView.setPrefix("To: "); 
    } 
} 

लेआउट कोड

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <com.tokenautocomplete.ContactsCompletionView 
     android:id="@+id/searchView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

</RelativeLayout> 
+0

हां मार्शल। धन्यवाद। मैंने कोशिश की है कि यह पहले से ही अच्छा काम कर रहा है। @Marshall Weir – AndroidDev

+0

हे मुझे यह त्रुटि मिल रही है: java.lang.ClassNotFoundException: क्लास "com.tokenautocomplete.TokenActivity" नहीं मिला – user1051505

+0

मैं आपका कोड उपयोग कर रहा हूं और इसमें मैं उपयोगकर्ता को अन्य टेक्स्ट भी जोड़ने की अनुमति दे रहा हूं टोकन। अब, मैं, टोकन के साथ पूरे पाठ alogn पाने के लिए AutocompleteText के एक भाग के रूप में चाहते हैं, लेकिन एक पूरे के रूप में यह प्राप्त करने में सक्षम नहीं। जब मैं 'contactCompletionView' पर 'getText()। ToString()' निष्पादित करता हूं, उस समय यह सभी टोकन स्ट्रिंग को छोड़ देता है और केवल स्पैन के बिना स्ट्रिंग देता है। – zanky

संबंधित मुद्दे