348

可能な重複: 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>

上記を1行だけにしたいEditText。ユーザーが「Enter」を押しても、カーソルは 2 行目まで下がらないはずです。誰でも私がそれをするのを手伝ってくれますか?

4

24 に答える 24

621

使用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>
于 2012-06-11T10:12:26.263 に答える
55

android:singleLine現在は推奨されていません。ドキュメントから:

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

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

android:inputType="textEmailSubject"したがって、フィールドの内容に一致する値を設定するだけでかまいません。

于 2013-05-05T03:51:13.497 に答える
18

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

android:maxLines="1"
于 2014-07-26T12:10:30.253 に答える
16
android:maxLines="1"
android:inputType="text"

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

android:singleLine="true" is deprecated

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

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

于 2016-03-29T14:23:55.170 に答える
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;
    }
});
于 2012-06-11T10:12:47.253 に答える
7

含む android:singleLine="true"

于 2012-06-11T10:10:08.903 に答える
2

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

android:singleLine="true"
于 2014-04-10T14:24:12.360 に答える
2

使用する

android:ellipsize="end"
android:maxLines="1"
于 2012-06-11T10:13:04.923 に答える
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;
    }
});

これが同じことをしようとしている人に役立つことを願っています。

于 2013-06-16T23:37:22.093 に答える
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..."/>
于 2012-06-11T10:13:32.927 に答える
0

現在 android:singleLine="true"減価償却済みなので使用

アンドロイド:maxLines="1"

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

于 2013-10-12T10:12:14.947 に答える
0

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

 android:maxLines="1"
于 2017-10-02T11:39:29.470 に答える