AndroidのEditText
ビューで複数行を許可する方法
デフォルトでは、AndroidのすべてのEditText
ウィジェットは複数行にまたがっています。
サンプルコードは次のとおりです。
<EditText
Android:inputType="textMultiLine" <!-- Multiline input -->
Android:lines="8" <!-- Total Lines prior display -->
Android:minLines="6" <!-- Minimum lines -->
Android:gravity="top|left" <!-- Cursor Position -->
Android:maxLines="10" <!-- Maximum Lines -->
Android:layout_height="wrap_content" <!-- Height determined by content -->
Android:layout_width="match_parent" <!-- Fill entire width -->
Android:scrollbars="vertical" <!-- Vertical Scroll Bar -->
/>
あなたはそれを使う方が良いと思うかもしれません:
<EditText
...
Android:inputType="textMultiLine"
/>
これはAndroid:singleLine
が推奨されなくなったためです。
これは私にとってはうまくいきます、実際にはこれら2つの属性が重要です: inputType と lines 。その上、あなたはスクロールバーを必要とするかもしれません、以下のコードはそれを作る方法を示します:
<EditText
Android:id="@+id/addr_edittext"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:gravity="top|left"
Android:inputType="textEmailAddress|textMultiLine"
Android:lines="20"
Android:minLines="5"
Android:scrollHorizontally="false"
Android:scrollbars="vertical" />
これは私が使用した方法であり、その作業もうまくいきます。誰かに役立つことを願っています。
<EditText
Android:id="@+id/EditText02"
Android:gravity="top|left"
Android:inputType="textMultiLine"
Android:layout_height="wrap_content"
Android:layout_width="wrap_content"
Android:lines="5"
Android:scrollHorizontally="false"
/>
乾杯! …ありがとう。
これを試して、これらの行をあなたの編集テキストビューに追加してください。私が追加します。あなたがそれを理解していることを確認してください
Android:overScrollMode="always"
Android:scrollbarStyle="insideInset"
Android:scrollbars="vertical"
<EditText
Android:inputType="textMultiLine"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:id="@+id/editText_newprom_description"
Android:padding="10dp"
Android:lines="5"
Android:overScrollMode="always"
Android:scrollbarStyle="insideInset"
Android:minLines="5"
Android:gravity="top|left"
Android:scrollbars="vertical"
Android:layout_marginBottom="20dp"/>
次のようにあなたのJavaクラスでこの編集テキストにクリックリストを作る、私はあなたのものに従って私の、chaneの名前を追加します。
EditText description;
description = (EditText)findViewById(R.id.editText_newprom_description);
description.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
view.getParent().requestDisallowInterceptTouchEvent(true);
switch (motionEvent.getAction() & MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_UP:
view.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
return false;
}
});
これは私にとってはうまくいきます
EditTextには singleLine プロパティがあります。 XMLで設定するか、setSingleLine(false)を呼び出して設定できます。 http://developer.Android.com/reference/Android/widget/TextView.html#setSingleLine%28%29
これらはすべて素晴らしいですが、上位レベルのスクロールビュー内にedittextがある場合には機能しません。この場合、設定をスクロール可能にするために、それらすべてをスクロール表示にします。設定に複数行のスクロール可能な編集テキストが必要な場合、そのスクロールは機能しません。
テーマで以前に割り当てられていた行数を無効にするには、xml属性を使用します。Android:lines="@null"
<EditText
Android:id="@id/editText" //id of editText
Android:gravity="start" // Where to start Typing
Android:inputType="textMultiLine" // multiline
Android:imeOptions="actionDone" // Keyboard done button
Android:minLines="5" // Min Line of editText
Android:hint="@string/Enter Data" // Hint in editText
Android:layout_width="match_parent" //width editText
Android:layout_height="wrap_content" //height editText
/>
私は http://www.pcsalt.com/Android/edittext-with-single-line-line-wrapping-and-done-action-in-Android/ からこれを学びましたウェブサイト私自身。ただし、複数行に分けてEnterボタンを投稿ボタンとして保持したい場合は、リストビューの「水平スクロール」をfalseに設定します。
Android:scrollHorizontally="false"
それがxmlでうまくいかない場合は、プログラム的にやってもおかしくなります。
listView.setHorizontallyScrolling(false);
Android:inputType="textMultiLine"
このコード行は私のために働きます。このコードをあなたのxmlファイルにedittextしてください。
もう1つのすべきことは、Android:minHeight
とAndroid:layout_height="wrap_content"
を一緒に使用することです。このようにして、編集のサイズが空のとき、およびユーザーが入力したときに編集のサイズを設定できます。複数行を含め、ユーザーが入力した量に応じて拡大されます。
<EditText
Android:hint="Address"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:inputType="textMultiLine|textNoSuggestions"
Android:id="@+id/edittxtAddress"
Android:layout_marginLeft="@dimen/textsize2"
Android:textColor="@Android:color/white"
Android:scrollbars="vertical"
Android:minLines="2"
Android:textStyle="normal" />
そして、 "\ n"を削除するアクティビティでは、ユーザーが次の行を押します
String editStr= edittxtAddress.getText().toString().trim();
MyString= editStr.replaceAll("\n"," ");