2012-08-23 7 views
74

मैंने एक संपादन टेक्स्ट फ़ील्ड में टेक्स्ट की अधिकतम लंबाई सेट की है।एंड्रॉइड एडिटटेक्स्ट अधिकतम लंबाई

<EditText 
      android:id="@+id/courseDescriptionField" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:inputType="textMultiLine" 
      android:lines="5" 
      android:maxLength="@integer/max_course_description_limit" 
      android:gravity="left|top" > 
     </EditText> 

मेरे लिए समस्या फिर भी है, कि, पाठ 140 अक्षरों के बाद प्रदर्शित होने के रोकता है, लेकिन यह अभी भी सिवाय इसके कि पाठ सिर्फ प्रकट नहीं होता है, टाइप करने के लिए जारी है, लेकिन फिर भी, यह "बफ़र" में प्रकट होता है (अर्थात् सुझाव वस्तु) यदि आप यही कहते हैं।

एक साइड नोट के रूप में, मैं सीमा का ट्रैक रखने के लिए टेक्स्टवॉचर का उपयोग कर रहा हूं। पाठ की मात्रा को पूरी तरह से सीमित करने का कोई तरीका है, ताकि 140 वर्ण होने पर, कुछ भी नहीं होता है जब बैकस्पेस/डिलीट के अलावा कुछ और दबाया जाता है?

उत्तर

89

Limit text length of EditText in Android

उपयोग एंड्रॉयड के संभावित डुप्लिकेट: maxLength = "140"

काम करना चाहिए यही कारण है कि। :)

आशा है कि

+2

मैं एक ही समस्या है, लेकिन यह मेरे – Mansi

+0

के लिए काम नहीं कर रहा है क्या तुम्हारा में हो रहा है? एक नया प्रश्न पूछें और इसमें अपना कोड डालें और मैं एक नज़र रखूंगा। यहां अपने प्रश्न का एक लिंक डालें ताकि मैं इसे पा सकूं –

+0

वही समस्या! क्या कोई समाधान है? – mrroboaat

36

मुझे एक ही समस्या थी।

यहाँ एक वैकल्पिक हल

android:inputType="textNoSuggestions|textVisiblePassword" 
android:maxLength="6" 

Thx How can I turnoff suggestions in EditText?

+0

यह मजाकिया है कि इनपुट टाइप को संशोधित करने से अधिकतम लम्बाई ठीक से काम करने की अनुमति देती है, जिससे उपयोगकर्ता अधिक बफर टाइप करने से रोकते हैं। मैं चाहता हूं कि Google इसे ठीक करे। –

+0

यह केवल टेक्स्ट की तरह दिखता है बैककी दबाते समय अक्षरों को हटाने के लिए सुझावों की आवश्यकता है। –

+0

यह अजीब है, आश्चर्य है कि अगर Google इस बग के बारे में जानता है! – Skynet

12
EditText editText= ....; 
InputFilter[] fa= new InputFilter[1]; 
fa[0] = new InputFilter.LengthFilter(8); 
editText.setFilters(fa); 
5

को मैं एक ही समस्या थी है। यह पूरी तरह से ठीक काम करता है जब आप इस जोड़ें:

android:inputType="textFilter" 

अपने EditText करने के लिए।

+0

यह सही जवाब है। धन्यवाद –

0

यदि आपने maxLength = 6 का उपयोग किया है, तो आप जो कुछ अक्षर दर्ज कर रहे हैं, वे सुझावों के नाम से कीबोर्ड के शीर्ष में जोड़े जाते हैं। तो जब आप उस समय दर्ज किए गए अक्षरों को हटाते हैं तो यह पहले सुझावों को हटा देगा और फिर EditText के अंदर वास्तविक पाठ हटा देगा। के लिए है कि आप को हटाने की जरूरत suggestions.just

android:inputType="textNoSuggestions"` 

या

android:inputType="textFilter" 

जोड़ने यह उन सुझावों को हटा देगा।

0

मेरे लिए इस समाधान काम करता है:

edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 
0

आप app:counterEnabled और android:maxLength, की तरह उपयोग कर सकते हैं तो आप एक प्रति लेबल देखना चाहते हैं:

<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:counterEnabled="true"> 

    <EditText 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:maxLength="420" /> 

</android.support.design.widget.TextInputLayout> 

करते नहींTextInputLayout पर सेट app:counterMaxLength क्योंकि यह android:maxLength के साथ संघर्ष करेगा जिसके परिणामस्वरूप टेक्स्ट आकार सीमा को हिट करने के बाद अदृश्य वर्णों का मुद्दा होगा।

1

आप कोशिश कर सकते हैं इस

EditText et = (EditText) findViewById(R.id.myeditText); 
    et.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(140) }); // maximum length is 140