edittext को सिंगल लाइन तक सीमित रखें


312

संभव डुप्लिकेट: एंड्रॉइड-सिंगललाइन-ट्रू-नो-वर्किंग-फॉर-एडिटेक्स

<EditText 
    android:id="@+id/searchbox"  
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:lines="1"
    android:scrollHorizontally="true"
    android:ellipsize="end"
    android:layout_weight="1"
    android:layout_marginTop="2dp"
    android:drawablePadding="10dp"
    android:background="@drawable/edittext"
    android:drawableLeft="@drawable/folder_full"
    android:drawableRight="@drawable/search"
    android:paddingLeft="15dp"
    android:hint="search...">
</EditText>

मैं EditTextकेवल एक पंक्ति के लिए ऊपर बनाना चाहता हूं । यहां तक ​​कि अगर उपयोगकर्ता "दर्ज" करता है, तो कर्सर को दूसरी पंक्ति में नीचे नहीं जाना चाहिए। क्या कोई मुझे ऐसा करने में मदद कर सकता है?


60
उपयोगandroid:singleLine=true
प्रवीणकुमार

6
एंड्रॉइड को बदलें: लाइनों = "1" के साथ android:singleLine=true
मोहम्मद अजहरुद्दीन शेख

3
सच उद्धरण "सच" में होना चाहिए
deepwinter

8
जैसे ही सिंगललाइन पदावनत हो गया, आप अधिकतम 1 = और इनपुट टाइप = टेक्स्ट का उपयोग कर सकते हैं।
सूर्यलोक 3

4
प्रयोग android:inputType="textVisiblePassword"से समस्या का समाधान होगा
साद महमूद

जवाबों:


556

का उपयोग करें android:maxLines="1"औरandroid:inputType="text"

आप Android को भूल गए : maxLines विशेषता। और Android के लिए देखें : inputType आपके उदाहरण के साथ, नीचे यह परिणाम देगा:

<EditText 
    android:id="@+id/searchbox"  
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:inputType="text"
    android:scrollHorizontally="true"
    android:ellipsize="end"
    android:layout_weight="1"
    android:layout_marginTop="2dp"
    android:drawablePadding="10dp"
    android:background="@drawable/edittext"
    android:drawableLeft="@drawable/folder_full"
    android:drawableRight="@drawable/search"
    android:paddingLeft="15dp"
    android:hint="search...">
</EditText>

17
@ Lukasz'Severiaan'Grela वर्तमान ग्रहण IDE में, कोई अपव्यय संकेत नहीं दिखाया गया है, और android:
maxLines


2
@Praveen: क्या आप कृपया संदर्भ दे सकते हैं जहां यह कहता है कि एंड्रॉइड: सिंगललाइन डिप्रेस्ड है? मैं इसे एपीआई 23 के लिए नहीं देख सकता। मैं इसे प्रलेखन में उल्लेख नहीं करता हूं और मुझे 23.0.1एसडीके के साथ इसका उपयोग करने पर कोई चेतावनी नहीं मिलती है
शोभित पुरी

5
एपीआई स्तर के बाद से घटाया हुआ 3. देखें: डेवलपर
लुइस

3
यदि आप केवल एंड्रॉइड का उपयोग करते हैं: maxLines = "1" काम नहीं करेगा। तो आपको दोनों एंड्रॉइड का उपयोग करने की आवश्यकता है: inputType = "text" और maxlines -1। फिर यह पूरी तरह से काम करेगा
हनुमान

193

का उपयोग करना android:singleLine="true"पदावनत है।

बस अपना इनपुट प्रकार जोड़ें और अधिकतम 1 सेट करें और सब कुछ ठीक चलेगा

android:inputType="text"
android:maxLines="1"

80
यदि आप इनपुट टाइप निर्दिष्ट नहीं करते हैं तो यह काम नहीं करेगा जो मुझे पता चला है।
माइक्रो

10
आपका अधिकार। inputType = "textMultiLine" अभी भी आपको मल्टीलाइन देगा भले ही आप अधिकतम लाइन 1 पर सेट करें
ralphgabb

2
ध्यान दें कि android:inputType="number"पहले से ही अधिकतम 1 पंक्ति है।
मीकर

यह काम नहीं करता है यदि मेरा टेक्स्टव्यू बहुत लंबा है और मैं इसे मल्टीलाइन करना चाहता हूं, लेकिन न्यूलाइन वर्णों के साथ नहीं।
htafoya

@htafoya यह कोड स्निपेट संपादित टेक्स्ट सिंगल लाइन बनाने के लिए काम करता है। हालाँकि, आप SO पर यहाँ एक नया प्रश्न शुरू कर सकते हैं।
राल्फगैब

54

android:singleLineअब पदावनत हो गया है। से प्रलेखन :

यह स्थिरांक एपीआई स्तर 3 में पदावनत किया गया था।

यह विशेषता पदावनत है। का प्रयोग करें maxLinesबजाय एक स्थिर पाठ का लेआउट परिवर्तित, और उपयोग करने के लिए textMultiLineinputType संपादन योग्य टेक्स्ट विचारों के लिए बजाय विशेषता (यदि दोनों singleLine और inputType आपूर्ति की जाती है, inputType झंडे singleLine का मूल्य को पार कर जाएगी) में झंडा।

तो आप बस android:inputType="textEmailSubject"या किसी अन्य मूल्य को सेट कर सकते हैं जो क्षेत्र की सामग्री से मेल खाता है।


29
यदि आप एक सरल लाइन टेक्स्ट फील्ड चाहते हैं, तो उपयोग करें android:inputType="text"
फोनिक्स

शुक्रिया श्रीमान। जंगल, textMultiLine मेरे लिए काम किया!
user1510006

18

आपको इस लाइन को अपने EditText में xml में जोड़ना होगा:

android:maxLines="1"

3
जैसा कि अन्य जवाबों में उल्लेख किया गया है - यह maxLinesऔर inputTypeसंयोजन के पक्ष में पदावनत किया गया है
जेनिस पेइसेनीक्स

16
android:maxLines="1"
android:inputType="text"

अपने लेआउट में EditText टैग में एक पंक्ति के लिए उपरोक्त कोड जोड़ें।

android:singleLine="true" is deprecated

यह स्थिरांक एपीआई स्तर 3 में पदावनत किया गया था ।

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


13

अब android:singleLineविशेषता पदावनत है। कृपया अपनी इन विशेषताओं को जोड़ने के EditTextलिए एक के लिए EditTextहोने के लिए एक लाइन।

android:inputType="text"
android:imeOptions="actionNext"
android:maxLines="1"

11

मैंने इसके साथ अतीत में किया है android:singleLine="true"और फिर "एंटर" कुंजी के लिए एक श्रोता को शामिल किया है:

((EditText)this.findViewById(R.id.mytext)).setOnKeyListener(new OnKeyListener() {

    public boolean onKey(View v, int keyCode, KeyEvent event) {

        if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) {
            //if the enter key was pressed, then hide the keyboard and do whatever needs doing.
            InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(getApplicationWindowToken(), 0);

            //do what you need on your enter key press here

            return true;
        }

        return false;
    }
});

11

यह EditText के लिए काम करेगा:

android:inputType="text"

तब मैं इनपुट पाठ के लिए अधिकतम लंबाई निर्धारित करूंगा:

android:maxLines="1"

उन 2 कि जरूरत है अब कर रहे हैं।



5

हर कोई XML तरीका दिखा रहा है, सिवाय एक व्यक्ति ने EditText के सेटमैक्सलाइन विधि को कॉल करके दिखाया। हालाँकि, जब मैंने ऐसा किया, तो यह काम नहीं किया। मेरे लिए काम करने वाली एक चीज़ इनपुट प्रकार सेट कर रही थी।

EditText editText = new EditText(this);
editText.setInputType(InputType.TYPE_CLASS_TEXT);

यह AZ, az, 0-9 और विशेष वर्णों की अनुमति देता है, लेकिन प्रवेश करने की अनुमति नहीं देता है। जब आप एंटर दबाते हैं, तो यह आपके आवेदन में लागू होने पर अगले जीयूआई घटक पर जाएगा।

आप अधिकतम उन वर्णों को सेट करना चाह सकते हैं, जिन्हें उस EditText में डाला जा सकता है, या फिर यह स्क्रीन के दाईं ओर जो कुछ भी है, उसे धक्का देगा, या बस स्क्रीन को बंद करना शुरू कर देगा। आप इसे इस तरह से कर सकते हैं:

InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(8);
editText.setFilters(filters);

यह उस EditText में अधिकतम वर्णों को 8 पर सेट करता है। आशा है कि यह सब आपकी मदद करता है।





1

@Aleks G OnKeyListener () वास्तव में अच्छी तरह से काम करती है, लेकिन मैंने इसे MainActivity से चलाया और इसलिए इसे थोड़ा संशोधित करना पड़ा:

EditText searchBox = (EditText) findViewById(R.id.searchbox);
searchBox.setOnKeyListener(new OnKeyListener() {

    public boolean onKey(View v, int keyCode, KeyEvent event) {

        if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) {
            //if the enter key was pressed, then hide the keyboard and do whatever needs doing.
            InputMethodManager imm = (InputMethodManager) MainActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(searchBox.getApplicationWindowToken(), 0);

            //do what you need on your enter key press here

            return true;
        }

        return false;
    }
});

मुझे आशा है कि यह किसी को भी ऐसा करने की कोशिश करने में मदद करता है।


1

प्रतिबंधित करने के लिए आपको केवल "सही" पर एकल पंक्ति विकल्प सेट करने की आवश्यकता है।

android:singleLine="true"

3
सिंगललाइन पदावनत है!
जमशेद कामरान

1

यह भी ध्यान देना जरूरी है कि संपत्ति android: inputType textMultiLine है । यदि हां, तो गुण एंड्रॉइड: सिंगललाइन, एंड्रॉइड: imeOptions, एंड्रॉइड: दीर्घवृत्त और एंड्रॉइड मैक्सलाइन को अनदेखा किया जाएगा और आपका EditText मल्टीलाइन को वैसे भी स्वीकार करेगा।



1

जैसा android:singleLine="true"कि अब मूल्यह्रास है इसलिए उपयोग करें

एंड्रॉयड: Maxlines = "1"

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


1

अपने कोड के बजाय नीचे दिए गए कोड का उपयोग करें

<EditText 
    android:id="@+id/searchbox"  
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:inputType="text"
    android:scrollHorizontally="true"
    android:ellipsize="end"
    android:layout_weight="1"
    android:layout_marginTop="2dp"
    android:drawablePadding="10dp"
    android:background="@drawable/edittext"
    android:drawableLeft="@drawable/folder_full"
    android:drawableRight="@drawable/search"
    android:paddingLeft="15dp"
    android:hint="search..."/>

0

XML फ़ाइल में एडिट टेक्स्ट में इस गुण को जोड़ें

 android:maxLines="1"


0

आपको अपने EditText में इस लाइन को जोड़ना होगा

android:maxLines="1"

और एक और बात, सेट मत भूलना android:inputType(जो भी आप चाहते हैं, पाठ, फोन .., लेकिन आपको इसे सेट करना होगा)


0

XML फ़ाइल में। बस जोड़ दो

एंड्रॉयड: Maxlines = "1"

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.