mucchinのAndroid戦記

EditTextで改行を不可にする方法

どうやってEditTextの改行を不可にするの?

任意のテキストの入力ができるEditText。
単純にEditTextを配置した場合、改行が出来る状態になってますが、作ろうとしているAndroidアプリでは、改行を不可にしたい場合があるかと思います。
例えば、検索するキーワードの入力用のEditTextとか。
ここでは、そんな場合、EditTextの改行を不可にする方法を紹介します。


レイアウトにEditTextを配置しているという前提でお話を進めます。
単純に、EditTextを配置すると、レイアウトのxmlには、以下のような形でEditTextのタグが生成されています。
<EditText android:layout_height=”wrap_content” android:layout_width=”wrap_content” android:id=”@+id/EditText01″></EditText>

改行を不可にする方法を調べましたら、逆に、「改行を可能にする」という設定がありました。
それが、EditTextのinputTypeというプロパティにあります。
このプロパティのtextMultiLineというプロパティを有効にすると、改行が可能になるらしい。
ここで疑問。
そんなプロパティを有効にしていないのに、なぜ改行が出来るの?
ここは推測ですが、inputTypeが全く未設定の場合は、デフォルトで改行が出来るようになっているのでしょう。
という事で解決策は、

EditTextのinputTypeを明示的に設定する

という事です。


例えば、キーワード入力のように、任意の文字が入力可能であるEditTextで、改行を不可にしたい場合は、inputTypeに「text」を指定してやります。
すると、改行が不可になってくれます。
<EditText android:layout_height=”wrap_content” android:layout_width=”wrap_content” android:id=”@+id/EditText01″
android:inputType=”text” ←これを追加
></EditText>
スポンサーリンク




Eclipseでの設定方法

1.Android Layout Editorで、レイアウトのxmlを開き、改行を不可にしたいEditTextを選択する。
2.Propatiesのウィンドウで、Input Typeを選択する。
3.Input TypeのValue欄の右側に、ボタンが出てくるので押す。
以下の画像の赤枠部分です。

4.以下のような画面が表示されますので、textにチェックしてOK。

逆に、改行を可能にしたい場合は、textMultiLineにチェックを入れればOKです。