edittextを1行に制限する


312

重複の可能性:android-singleline-true-not-working-for-edittext

<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を一行だけにしたい。ユーザーが「Enter」キーを押しても、カーソルが2行目に下がってはなりません。誰かが私を助けることができますか?


60
使用android:singleLine=true
Praveenkumar

6
android:lines = "1"をに置き換えandroid:singleLine=trueます。
Mohammed Azharuddin Shaikh

3
trueは引用符で
囲む

8
singleLineが非推奨になったため、maxLines = 1およびinputType = textを使用できます。
sunlover3

4
使用android:inputType="textVisiblePassword"すると問題が解決します
Saad Mahmud

回答:


557

使用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
現在のEclipse IDEの@ Lukasz'Severiaan'Grela、非推奨のヒントは表示されず、android:maxLinesは入力を1行に制限しません
mjn

10
singleline = trueを使用
Dakshesh Khatri 2014

2
@Praveen:android:singleLineが廃止予定であると記載されている場所を参照してください。私はそれがドキュメントに記載し、私はそれを使用するときも、私は何の警告を得ることはありません表示されていないAPI 23のためにそこにそれを見ることができない23.0.1SDK
Shobhitプリ

5
APIレベル3で廃止されました
Luis

3
android:maxLines = "1"のみを使用する場合は機能しません。したがって、android:inputType = "text"とmaxlines -1の両方を使用する必要があります。その後、完全に機能します
Hanuman

194

の使用android:singleLine="true"は非推奨です。

入力タイプを追加してmaxlineを1に設定するだけで、すべてが正常に動作します

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

80
inputTypeを指定しない場合、機能しません。
マイクロ

10
あなたの右。inputType = "textMultiLine"は、最大ラインを1に設定した場合でもマルチラインを提供します
ralphgabb

2
android:inputType="number"既に最大1行あることに注意してください。
マイサー

これは、テキストビューが非常に長く、複数行にしたい場合には機能しませんが、改行文字では機能しません。
htafoya 2017

@htafoyaこのコードスニペットは、編集テキストを1行にするために機能します。ただし、ここで新しい質問を開始できます。
ラルフガブ2017

54

android:singleLineは非推奨になりました。ドキュメントから:

この定数はAPIレベル3で廃止されました。

この属性は廃止されました。maxLines代わりに使用して静的テキストのレイアウトを変更し、textMultiLine編集可能なテキストビューの代わりにinputType属性のフラグを使用します(singleLineとinputTypeの両方が指定されている場合、inputTypeフラグはsingleLineの値をオーバーライドします)。

したがってandroid:inputType="textEmailSubject"、フィールドの内容に一致する値またはその他の値を設定できます。


29
シンプルなラインテキストフィールドが必要な場合は、を使用しますandroid:inputType="text"
PhoneixS 2013

@Mrさんありがとうございます。Bungle、textMultiLineは私のために働いた!
user1510006

18

この行をxmlのEditTextに追加する必要があります。

android:maxLines="1"

3
他の答えは指摘しているとおり-これはの賛成で廃止されましたmaxLinesinputTypeの組み合わせ
ジャニスPeisenieks

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

上記のコードを追加して、レイアウトのEditTextタグに1行を追加します。

android:singleLine="true" is deprecated

この定数はAPIレベル3で廃止されました。

この属性は廃止されました。代わりにmaxLinesを使用して静的テキストのレイアウトを変更し、編集可能なテキストビューの代わりにinputType属性のtextMultiLineフラグを使用します(singleLineとinputTypeの両方が指定されている場合、inputTypeフラグはsingleLineの値をオーバーライドします)。


13

今、android:singleLine属性は廃止されました。これらの属性をに追加してEditTextEditText1行にしてください。

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

11

私は過去にandroid:singleLine="true"「Enter」キーのリスナーを追加してからこれを行いました:

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

1人がEditTextのsetMaxLinesメソッドの呼び出しを示したことを除いて、全員がXMLの方法を示しています。しかし、私がそれをしたとき、それはうまくいきませんでした。私にとってうまくいったことの1つは、入力タイプの設定でした。

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

これにより、AZ、az、0-9、および特殊文字を使用できますが、Enterキーを押すことはできません。Enterキーを押すと、アプリケーションに該当する場合は、次のGUIコンポーネントに移動します。

また、その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:inputTypeがtextMultiLineである場合にも注意することが重要です。その場合、プロパティandroid:singleLine、android:imeOptions、android:ellipsizeおよびandroid maxLinesは無視され、EditTextはマルチラインを受け入れます。



1

現在 android:singleLine="true"減価償却されているので、

android:maxLines = "1"

代わりにmaxLinesを使用して静的テキストのレイアウトを変更し、編集可能なテキストビューの代わりにinputType属性のtextMultiLineフラグを使用します(singleLineとinputTypeの両方が指定されている場合、inputTypeフラグはsingleLineの値をオーバーライドします)。


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"

もう1つは、設定を忘れないでください android:inputType(テキスト、電話など、何でも設定できますが、設定する必要があります)


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.