2010-08-31 3 views
16

मैं वर्तमान में AutocompleteTextView घटक का उपयोग करके एक स्वतः पूर्ण क्षेत्र लागू कर रहा हूं।AutocompleteTextview और CompletionHintView

मैं परिणामों की संख्या के साथ एक समापन संकेत जोड़ने की कोशिश कर रहा हूं, और बस इसे ड्रॉपडाउन सूची तत्व से अलग शैली बनाना चाहता हूं। घटक पर completionHintView नामक एक विशेषता है, लेकिन हर बार जब मैं इसे एक लेआउट देता हूं तो मैंने पहले परिभाषित किया था कि यह NullPointerException फेंकता है।

क्या किसी के पास पूरा करने का संकेत देने के तरीके पर एक कामकाजी उदाहरण है?

+0

लगता है कि किसी के पास कोई उदाहरण नहीं है :) कुछ कोड दिखाना चाहते हैं ताकि हम इसके माध्यम से काम कर सकें और देखें कि क्या गलत है? –

उत्तर

5

क्या आप इस बात पर विस्तार कर सकते हैं कि आप किस प्रकार की स्टाइल को आवेदन करने की मांग कर रहे हैं?

यदि यह केवल मूल पाठ स्टाइल है, तो आप शायद Spannable बना सकते हैं और परिणाम के साथ समापन संकेत सेट कर सकते हैं, क्योंकि यह CharSequence स्वीकार करता है। Spannable बनाने का एक उदाहरण और इसे शैलियों को लागू करें this post में दिखाया गया है।

आप एक तरह से वास्तव में TextView (जैसे गद्दी) के मापदंडों में हेरफेर करने के लिए देख रहे हैं, AutoCompleteTextView की source code एक संकेत (pun लक्षित) प्रदान करने के लिए लगता है।

private View getHintView(Context context) { 
    if (mHintText != null && mHintText.length() > 0) { 
     final TextView hintView = (TextView) LayoutInflater.from(context).inflate(
       mHintResource, null).findViewById(com.android.internal.R.id.text1); 
     hintView.setText(mHintText); 
     hintView.setId(HINT_VIEW_ID); 
     return hintView; 
    } else { 
     return null; 
    } 
} 

यह पता चलता है कि एंड्रॉयड संसाधन संदर्भ आपके द्वारा निर्दिष्ट आईडी text1 के लिए लग रहा है। इस तरह के एक संसाधन का सबसे बुनियादी संस्करण इस आईडी के साथ, लेकिन एक TextView कुछ भी नहीं होते हैं:

<?xml version="1.0" encoding="utf-8"?> 
    <TextView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@android:id/text1" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:padding="10dp" 
     android:textColor="#FF0000" android:textSize="16sp" /> 

ऊपर एक लेआउट फ़ाइल में सहेजें (जैसे completion_hint_view.xml) और इसे संदर्भ के रूप में इस प्रकार से अपने AutoCompleteTextView:

<AutoCompleteTextView android:id="@+id/autocomplete_textview" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:completionHintView="@layout/completion_hint_view"/> 

यह दूसरा विकल्प शायद उपयोग करने का सबसे आसान विकल्प है और आपको टेक्स्ट व्यू के पैरामीटर तक पूर्ण पहुंच देगा। यदि आपको इस दृश्य में टेक्स्ट में एकाधिक शैलियों को लागू करने की आवश्यकता है, तो आप पहले सुझाव को शामिल कर सकते हैं, क्योंकि इससे आपको अधिक लचीलापन मिल जाएगा।

यदि इनमें से कोई भी सुझाव पर्याप्त नहीं है, तो मैं कुछ कम सुरुचिपूर्ण कामों के बारे में सोच सकता हूं जो शायद आपको एक ही परिणाम प्राप्त करने की अनुमति देगा।

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

  • कोई संबंधित समस्या नहीं^_^