1

我有以下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 版本不同。

我错过了什么?

4

2 回答 2

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);
于 2013-09-06T17:11:49.227 回答
1

我想你必须这样做

android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="none"
android:singleLine="false"
于 2013-09-06T16:41:13.673 回答