[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行目まで下がってはいけません。 誰も私がそれをやって助けることができますか?




as android:singleLine="true"developer.android.com/reference/android/R.attr.html#singleLineようになりました。

android:maxLines = "1"

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




つかいます

android:ellipsize="end"
android:maxLines="1"



android:imeOptions="actionDone"

私のために働いた。




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

android:inputType="text"
android:imeOptions="actionNext"
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"




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




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

android:maxLines="1"



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

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

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

そのEditTextに入れることができる文字の最大数を設定することもできます。そうでない場合は、画面の右にあるものを押すか、スクリーン自体の後ろから開始します。 あなたは次のようにこれを行うことができます:

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

これは、そのEditTextの最大文字数を8に設定します。 このすべてがあなたを助けることを願っています。




Links