重複の可能性があります。 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行目に移動しません。誰かが私がそうするのを手伝ってくれる?
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>
Android:singleLine="true"
の使用は非推奨です。
入力タイプを追加してmaxlineを1に設定するだけで、すべてうまくいきます。
Android:inputType="text"
Android:maxLines="1"
Android:singleLine
は現在非推奨です。 のドキュメントから :
この定数はAPIレベル3では推奨されていませんでした。
この属性は非推奨です。静的テキストのレイアウトを変更するには代わりに
maxLines
を使用し、編集可能なテキストビューには代わりにinputType属性でtextMultiLine
フラグを使用します(singleLineとinputTypeの両方が指定されている場合、inputTypeフラグはsingleLineの値をオーバーライドします)。
そのため、Android:inputType="textEmailSubject"
またはフィールドの内容に一致する他の値を設定することができます。
あなたはxmlのあなたのEditTextにこの行を追加しなければなりません:
Android:maxLines="1"
Android:maxLines="1"
Android:inputType="text"
上記のコードを追加して、レイアウト内のEditTextタグに単一行を入れます。
Android:singleLine="true" is deprecated
この定数は APIレベル3 では非推奨のでした。
この属性は非推奨です。静的テキストのレイアウトを変更するには代わりにmaxLinesを使用し、編集可能なテキストビューにはinputType属性でtextMultiLineフラグを使用します(singleLineとinputTypeの両方が指定されている場合、inputTypeフラグはsingleLineの値をオーバーライドします)。
Android:singleLine
属性は非推奨になりました。 EditText
を単一行にするには、これらの属性をEditText
に追加してください。
Android:inputType="text"
Android:imeOptions="actionNext"
Android:maxLines="1"
私はこれまでに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;
}
});
これはEditTextのために働きます:
Android:inputType="text"
それから私は入力テキストの最大長を設定するでしょう:
Android:maxLines="1"
それらが今必要な2つです。
Android:singleLine="true"
を含める
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に設定します。これがあなたのお役に立てば幸いです。
このコードを試してください
Android:inputType="textPersonName"
プログラムで:
textView.setMaxLines(1);
つかいます
Android:ellipsize="end"
Android:maxLines="1"
制限するには、単一行オプションを "true"に設定するだけです。
Android:singleLine="true"
プロパティAndroid:inputTypeがtextMultiLineである場合も注意することが重要です。その場合、プロパティAndroid:singleLine、Android:imeOptions、Android:ellipsize、およびAndroid maxLinesは無視され、編集テキストはいずれにしてもMultiLinesを受け入れます。
@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: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..."/>
Android:singleLine="true"
は現在 であるため廃止予定 なので、
静的テキストのレイアウトを変更するには代わりにmaxLinesを使用し、編集可能なテキストビューにはinputType属性でtextMultiLineフラグを使用します(singleLineとinputTypeの両方が指定されている場合、inputTypeフラグはsingleLineの値をオーバーライドします)。
この行をあなたのedittextに追加してください。
Android:inputType = "テキスト"
xMLファイルでは、このプロパティをテキストの編集に追加します。
Android:maxLines="1"
Android:imeOptions="actionDone"
私のために働いた。
EditTextにこの行を追加する必要があります
Android:maxLines="1"
その他、set Android:inputType
を忘れないでください(あなたが望むもの、テキスト、電話..、しかし、あなたはそれを設定しなければなりません)