web-dev-qa-db-ja.com

edittextを単一行に制限する

重複の可能性があります。 Android-singleline-true-edit-for-for-edit-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>

私は上記のEditTextを単一行だけにしたいのです。ユーザーが「入力」を押しても、カーソルは2行目に移動しません。誰かが私がそうするのを手伝ってくれる?

271
Pankaj Singhal

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

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

入力タイプを追加してmaxlineを1に設定するだけで、すべてうまくいきます。

Android:inputType="text"
Android:maxLines="1"
179
ralphgabb

Android:singleLineは現在非推奨です。 のドキュメントから

この定数はAPIレベル3では推奨されていませんでした。

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

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

54
Mr. Bungle

あなたはxmlのあなたのEditTextにこの行を追加しなければなりません:

Android:maxLines="1"
18
UGD
Android:maxLines="1"
Android:inputType="text"

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

Android:singleLine="true" is deprecated

この定数は APIレベル3 では非推奨のでした。

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

14
ChrisR

Android:singleLine属性は非推奨になりました。 EditTextを単一行にするには、これらの属性をEditTextに追加してください。

Android:inputType="text"
Android:imeOptions="actionNext"
Android:maxLines="1"
12
Kaushik

私はこれまでに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
Aleks G

これはEditTextのために働きます:

Android:inputType="text"

それから私は入力テキストの最大長を設定するでしょう:

Android:maxLines="1"

それらが今必要な2つです。

11
Ray Hunter

Android:singleLine="true"を含める

6
Vipul Shah

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

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

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

また、そのEditTextに入れることのできる最大文字数を設定したくない場合もあります。そうしないと、画面の右側にあるものがすべてプッシュされたり、画面自体の後ろに表示されたりします。あなたはこれのようにこれをすることができます:

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

これは、そのEditTextの最大文字数を8に設定します。これがあなたのお役に立てば幸いです。

5
Peter Griffin

このコードを試してください

Android:inputType="textPersonName"
2
TheLastSummer

プログラムで:

textView.setMaxLines(1);
2
Anton Duzenko

つかいます

Android:ellipsize="end"
Android:maxLines="1"
2
Raghu Nagaraju

制限するには、単一行オプションを "true"に設定するだけです。

Android:singleLine="true"
1
user3469914

プロパティAndroid:inputTypeがtextMultiLineである場合も注意することが重要です。その場合、プロパティAndroid:singleLine、Android:imeOptions、Android:ellipsize、およびAndroid maxLinesは無視され、編集テキストはいずれにしてもMultiLinesを受け入れます。

1
Thales Valias

@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
Mark Cramer

あなたのコードの代わりに以下のコードを使う

<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..."/>
1
Dipak Keshariya

Android:singleLine="true"は現在 であるため廃止予定 なので、

Android:maxLines = "1"

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

1
Maveňツ

この行をあなたのedittextに追加してください。

Android:inputType = "テキスト"

1
Sagar Devanga

xMLファイルでは、このプロパティをテキストの編集に追加します。

 Android:maxLines="1"
0
yousef
Android:imeOptions="actionDone"

私のために働いた。

0
Bikram

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

Android:maxLines="1"

その他、set Android:inputTypeを忘れないでください(あなたが望むもの、テキスト、電話..、しかし、あなたはそれを設定しなければなりません)

0
GianhTran