我有以下 EditText 按预期工作。
<EditText
android:id="@+id/etMensagem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_message"
android:minLines="4"
android:text="@string/send"
android:inputType="textCapSentences|textMultiLine"/>
但是需要以编程方式设置属性(除了layout_width和height之外)。
这是我的尝试:
edit_text.setText(context.getString(R.string.enviar_mensagem));
edit_text.setMinLines(4);
edit_text.setHint(context.getString(R.string.hint_message));
edit_text.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_MULTI_LINE);
但是当我这样做时,文字没有换行。尽管它是一个多行的EditText,但它将文本保存在一行中,与XML版本不同。
我错过了什么?
答案 0 :(得分:7)
在这里找到答案:https://stackoverflow.com/a/5800511/770467
要以编程方式设置EditText的输入类型,您必须这样做 指定输入类类型是文本
最终解决方案:
etMensagem.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_MULTI_LINE);
答案 1 :(得分:1)
我想你必须这样做
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="none"
android:singleLine="false"