düzenleme metnini tek satırla kısıtla


312

olası kopya: android-singleline-true-not-edit-for-text

<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>

Yukarıdakilerin EditTextsadece tek bir çizgiye sahip olmasını istiyorum . Kullanıcı "enter" tuşuna bassa bile imleç ikinci satıra inmemelidir. Bunu yapmama yardımcı olan var mı?


60
kullanımıandroid:singleLine=true
Praveenkumar

6
android yerine: lines = "1" ile android:singleLine=true.
Muhammed Azharuddin Shaikh

3
true tırnak içinde "true" olmalıdır
deepwinter

8
SingleLine kullanımdan kaldırıldığında maxLines = 1 ve inputType = text kullanabilirsiniz.
sunlover3

4
Kullanmak android:inputType="textVisiblePassword"sorunu çözecektir
Saad Mahmud

Yanıtlar:


557

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

Android: maxLines özniteliğini unuttunuz . Ve android için bakın : inputType Örneğinizle , aşağıdaki sonucu verecektir:

<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
@ Eclipse IDE'de Lukasz'Severiaan'Grela, kullanımdan kaldırma ipucu gösterilmiyor ve android: maxLines, bir satıra girişi kısıtlamıyor
mjn

10
singleline = true kullan
Dakshesh Khatri

2
@Praveen: Lütfen android yazdığı referansı verebilir misiniz : singleLine kullanımdan kaldırıldı mı? API 23 için orada göremiyorum ve 23.0.1SDK ile birlikte kullandığımda herhangi bir uyarı almıyorum
Shobhit Puri

5
API düzey 3'ten beri kullanımdan kaldırıldı. Bkz. Developer.android.com/reference/android/R.attr.html#singleLine
Luis

3
Sadece android kullanıyorsanız: maxLines = "1" işe yaramaz.Bu yüzden hem android kullanmanız gerekir: inputType = "text" ve maxlines -1.O zaman mükemmel çalışır
Hanuman

193

Kullanımı android:singleLine="true"kullanımdan kaldırıldı.

Sadece giriş türünüzü ekleyin ve maxline değerini 1 olarak ayarlayın, her şey yoluna girecek

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

80
İnputType belirtmezseniz, ben öğrendim ne işe yaramaz.
Mikro

10
haklısın. inputType = "textMultiLine", maks. satırı 1 olarak
ayarlasanız

2
Not için bunu android:inputType="number"zaten maks 1 sıra var.
Micer

Metin görünümüm çok uzunsa ve çok satırlı, ancak yeni satır karakterleriyle değil, bu işe yaramaz.
htafoya

@htafoya bu kod snippet'i, metni tek satırlık düzenleme yapmak için çalışır. Ancak burada SO'dan yeni bir soru başlatabilirsiniz.
ralphgabb

54

android:singleLineartık kullanımdan kaldırıldı. Gönderen belgeler :

Bu sabit, API düzey 3'te kullanımdan kaldırıldı.

Bu özellik kullanımdan kaldırıldı. Kullanım maxLinesstatik metnin düzenini değiştirmek ve kullanımı yerine textMultiLinedüzenlenebilir metin görünümleri için yerine InputType özniteliği (tekli ve InputType hem verilmezse, InputType bayrakları SingleLine değerini geçersiz kılar) bayrağı.

Böylece android:inputType="textEmailSubject", alanın içeriğiyle eşleşen herhangi bir değeri veya başka bir değeri ayarlayabilirsiniz .


29
Basit bir satır metin alanı istiyorsanız, kullanın android:inputType="text".
PhoneixS

Teşekkürler bayım. Bungle, textMultiLine benim için çalıştı!
user1510006

18

Bu satırı xml'de EditText'inize eklemelisiniz:

android:maxLines="1"

3
Diğer cevapların belirttiği gibi - bu lehine maxLinesve inputTypekombinasyon lehine
onaylandı

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

Düzeninizdeki EditText etiketinde tek bir satır olması için yukarıdaki kodu ekleyin.

android:singleLine="true" is deprecated

Bu sabit edildi kaldırılmış içinde API düzeyinde 3 .

Bu özellik kullanımdan kaldırıldı. Statik bir metnin düzenini değiştirmek için maxLines kullanın ve düzenlenebilir metin görünümleri için inputType özniteliğinde textMultiLine bayrağını kullanın (hem singleLine hem de inputType sağlanırsa, inputType bayrakları singleLine değerini geçersiz kılar).


13

Şimdi android:singleLineözellik kullanımdan kaldırıldı. Tek satırlık olması EditTextiçin lütfen bu özellikleriEditText

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

11

Bunu geçmişte yaptım android:singleLine="true"ve sonra "enter" tuşu için bir dinleyici ekledim:

((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

Bu, EditText için çalışacaktır:

android:inputType="text"

Sonra girdi metni için bir maksimum uzunluk ayarlamak istiyorum:

android:maxLines="1"

Bunlar şimdi gerekli olan 2.



5

Bir kişi EditText'in setMaxLines yöntemini çağırması dışında herkes XML yolunu gösteriyor. Ancak, bunu yaptığımda işe yaramadı. Benim için işe yarayan bir şey girdi türünü ayarlamak oldu.

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

Bu AZ, az, 0-9 ve özel karakterlere izin verir, ancak enter tuşuna basılmasına izin vermez. Enter tuşuna bastığınızda, uygulamanızda varsa bir sonraki GUI bileşenine gider.

Ayrıca, o EditText içine yerleştirilebilecek maksimum karakter sayısını ayarlamak isteyebilirsiniz, yoksa sağdaki her şeyi ekranın dışına itecek veya sadece ekranın kendisini izlemeye başlayacaktır. Bunu şu şekilde yapabilirsiniz:

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

Bu, EditText içinde maksimum karakter sayısını 8 olarak ayarlar. Umarım tüm bunlar sana yardımcı olur.





1

@Aleks G OnKeyListener () gerçekten iyi çalışıyor, ancak MainActivity'den çalıştırdım ve bu yüzden biraz değiştirmek zorunda kaldım:

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;
    }
});

Umarım bu aynı şeyi yapmaya çalışan herkese yardımcı olur.


1

Kısıtlamak için tek satır seçeneğini "true" olarak ayarlamanız yeterlidir.

android:singleLine="true"

3
singleLine kullanımdan kaldırıldı!
Jamshaid Kamran

1

Mülkiyet android yapmaları da ödeme dikkat etmek önemlidir: InputType olduğunu textMultiLine . Eğer öyleyse, android: singleLine, android: imeOptions, android: ellipsize ve android maxLines özellikleri göz ardı edilecek ve EditText yine de MultiLines kabul edecek.



1

Gibi android:singleLine="true"şimdi olduğu amortismanı kullanım yüzden

robot: maxLines = "1"

Statik bir metnin düzenini değiştirmek için maxLines kullanın ve düzenlenebilir metin görünümleri için inputType özniteliğinde textMultiLine bayrağını kullanın (hem singleLine hem de inputType sağlanırsa, inputType bayrakları singleLine değerini geçersiz kılar).


1

Kodunuz yerine Aşağıdaki Kod'u kullanın

<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 Dosyasında bu özellikleri Metni Düzenle'ye ekleyin

 android:maxLines="1"

0
android:imeOptions="actionDone"

benim için çalıştı.


0

Bu satırı EditText'inize eklemelisiniz

android:maxLines="1"

ve başka bir şey, seti unutma android:inputType(ne istersen, metin, telefon .., ama ayarlaman gerekir)


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.