如何将Edittext设置为多行?

12 浏览
0 Comments

如何将Edittext设置为多行?

我曾尝试将我的EditText设置为多行,它起作用了。但是当我改变了一些EditText上的东西,使其看起来更酷时,它不再支持多行输入了。


0
0 Comments

问题原因:在设置EditText为多行输入时,可能会出现不能换行的情况。

解决方法:根据以下步骤进行操作。

1. 查找EditText控件:

etReqdesc = (EditText) findViewById(R.id.reqdesc);

2. 在onCreate()方法中通过编程方式调用以下代码:

etReqdesc.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE);
etReqdesc.setSingleLine(false);
etReqdesc.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION);

3. 确保你的EditText控件的属性如下:


4. 移除android:maxLength="80"属性。

通过以上步骤,你可以解决EditText不能换行的问题。如果你想动态设置EditText的最大长度,可以参考这个回答

如果你清理了项目但仍然不能换行,请检查以上步骤是否正确执行。

0
0 Comments

问题出现的原因:在设置Edittext为多行时,需要设置InputType为TYPE_CLASS_TEXT和TYPE_TEXT_FLAG_MULTI_LINE,同时还需要设置InputFilter来限制输入的最大长度。

解决方法:将以下代码放在onCreate方法中即可解决问题。

reqdesc = (EditText) myView.findViewById(R.id.reqdesc);
reqdesc.setInputType(InputType.TYPE_CLASS_TEXT |
             InputType.TYPE_TEXT_FLAG_MULTI_LINE |
            InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
InputFilter[] fArray = new InputFilter[1];
    fArray[0] = new InputFilter.LengthFilter(maxLength);
    reqdesc.setFilters(fArray);

0