[Android] edittextを1行に制限する


Answers

android:singleLine="true"を使用することは推奨されていません。

あなたの入力タイプを追加し、maxlineを1に設定すれば、すべて正常に動作します

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

可能な複製: 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を1行だけにしたい。 ユーザーが「enter」を押しても、カーソルは2行目まで下がってはいけません。 誰も私がそれを手伝うことができますか?




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

android:maxLines="1"



今すぐandroid:singleLine属性は非推奨です。 これらの属性をEditText追加して、 EditTextを1行にしてください。

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



android:singleLine="true"含めるandroid:singleLine="true"




これは、EditTextで機能します:

android:inputType="text"

次に、入力テキストの最大長を設定します。

android:maxLength="<int>"

それらは現在必要とされている2つです。




つかいます

android:ellipsize="end"
android:maxLines="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;
    }
});

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




edittextにこの行を追加する

android:inputType = "text"




as android:singleLine="true"償却されるようになりました。

android:maxLines = "1"

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




android:imeOptions="actionDone"

私のために働いた。