EditText会自动转到新行

时间:2014-04-17 03:01:28

标签: android android-edittext

我希望EditText的最大行数为2,最大长度为20.如果EditText长度超过10,则应自动转到新行,以便用户“需要按Enter键。有人可以帮我解决这个问题吗?

5 个答案:

答案 0 :(得分:20)

将此内容添加到您的EditText xml代码

  

机器人:的inputType =" textMultiLine"

这会在输入数据时自动将文字移动到下一行。

答案 1 :(得分:19)

它应该以最优雅的方式存在,但是这个解决方案可以帮助您作为实现您想要的线索。首先,您需要将EditText值设置如下:

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="text|textMultiLine|textCapSentences"
    android:maxLength="21"
    android:gravity="left"
    android:maxLines="2" />  

您必须将maxLength属性设置为21 ,因为输入char (新行)将在edittext中占用一个字符,那么用户只能写19个字符而不是20 然后,您应该使用带有TextWatcher的{​​{1}}(如果用户删除了之前的字符,则使用此值),这应该如下所示:

boolean

注意: 但是,您应该小心使用此代码。实际上,用户仍然可以按下// init global boolean private boolean isReached = false; // in onCreate method edittext.addTextChangedListener(new TextWatcher(){ @Override public void afterTextChanged(Editable s) { // if edittext has 10chars & this is not called yet, add new line if(textEd.getText().length() == 10 && !isReached) { textEd.append("\n"); isReached = true; } // if edittext has less than 10chars & boolean has changed, reset if(textEd.getText().length() < 10 && isReached) isReached = false; } }); ,然后添加新行。也许这些答案可能会帮助您处理它并让用户“只在路上”:Prevent enter key on EditText but still show the text as multi-line

答案 2 :(得分:0)

对于这些行,请执行以下操作:

<EditText
    android:inputType="textMultiLine" <!-- Multiline input -->
    android:lines="2" <!-- Total Lines prior display -->
    android:minLines="1" <!-- Minimum lines -->
    android:gravity="top|left" <!-- Cursor Position -->
    android:maxLines="2" <!-- Maximum Lines -->
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"/>

您也可以使用此参数(不适用于Android&lt; = 3.0 ):

android:singleLine="false"

对于字符数,请执行以下操作:

EditText et= (EditText) findViewById(R.id.editText1);
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(20); //Filter to 20 characters
et.setFilters(filters);

或者,使用其他参数,

android:maxLength="20"

中的

xml

答案 3 :(得分:0)

使EditText显示2行。你可以这样写:

android:maxLength="20"
android:maxLines="2"
android:singleLine="false"
android:layout_width="Your Choice"

答案 4 :(得分:0)

textView.setText(“您的文本” +“ \ n” +“您的文本”);